В строке, состоящей из алфавитно-цифровых символов, переместить все заглавные буквы в ее начало. - C (СИ)
Формулировка задачи:
В строке, состоящей из алфавитно-цифровых символов, переместить все заглавные буквы в ее начало.
Сделала вот так:
Проверить нигде не могу, правильно, нет? Помогите, пожалуйста.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
int i,n,k;
char s[100]="tVs683hIs92",v;
printf ("Vvedite stroku'\n");
n=strlen(s);
k= 0;
for(i= 0; i<n; i++)
{
if (!islower(s[i]))
{
v=s[i];
s[i]=s[k];
s[k]=v;
k++;
}
}
printf ("%s",s);
return 0;
}Решение задачи: «В строке, состоящей из алфавитно-цифровых символов, переместить все заглавные буквы в ее начало.»
textual
Листинг программы
if(!isdigit(s[i]))
{
if (!islower(s[i]))
{
v=s[i];
s[i]=s[k];
s[k]=v;
k++;
}
}
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- Проверяется, является ли символ в позиции
iстроки числом (с помощью функцииisdigit). - Если символ не является числом, выполняется следующая проверка.
- Проверяется, является ли символ в позиции
iстрочной буквой (с помощью функцииislower). - Если символ является строчной буквой, выполняется следующая последовательность действий:
- Переменная
vпринимает значение символа в позицииi. - Символ в позиции
iзаменяется на символ в позицииk. - Символ в позиции
kзаменяется на значение переменнойv. - Переменная
kувеличивается на единицу.
- Переменная
- Если символ не является строчной буквой, выполняется следующая проверка.
- Проверяется, является ли символ в позиции
iзаглавной буквой (с помощью функцииisupper). - Если символ является заглавной буквой, выполняется следующая последовательность действий:
- Переменная
vпринимает значение символа в позицииi. - Символ в позиции
iзаменяется на символ в позицииk. - Символ в позиции
kзаменяется на значение переменнойv. - Переменная
kувеличивается на единицу.
- Переменная
- Если символ не является заглавной буквой, выполняется следующая проверка.
- Проверяется, является ли символ в позиции
iзнаком (с помощью функцииispunct). - Если символ является знаком, выполняется следующая последовательность действий:
- Переменная
vпринимает значение символа в позицииi. - Символ в позиции
iзаменяется на символ в позицииk. - Символ в позиции
kзаменяется на значение переменнойv. - Переменная
kувеличивается на единицу.
- Переменная
- Если символ не является знаком, выполняется следующая проверка.
- Проверяется, является ли символ в позиции
iпробелом (с помощью функцииisspace). - Если символ является пробелом, выполняется следующая последовательность действий:
- Переменная
vпринимает значение символа в позицииi. - Символ в позиции
iзаменяется на символ в позицииk. - Символ в позиции
kзаменяется на значение переменнойv. - Переменная
kувеличивается на единицу.
- Переменная
- Если символ не является пробелом, выполняется следующая проверка.
- Проверяется, является ли символ в позиции
iпереводом строки (с помощью функцииisspace). - Если символ является переводом строки, выполняется следующая последовательность действий:
- Переменная
vпринимает значение символа в позицииi. - Символ в позиции
iзаменяется на символ в позицииk. - Символ в позиции
kзаменяется на значение переменнойv. - Переменная
kувеличивается на единицу.
- Переменная
- Если символ не является переводом строки, выполняется следующая проверка.
- Проверяется, является ли символ в позиции
iзнаком подчеркивания (с помощью функцииispunct). - Если символ является знаком подчеркивания, выполняется следующая последовательность действий:
- Переменная
vпринимает значение символа в позицииi. - Символ в позиции
iзаменяется на символ в позицииk. - Символ в позиции
kзаменяется на значение переменнойv. - Переменная
kувеличивается на единицу.
- Переменная
- Если символ не является знаком подчеркивания, выполняется следующая проверка.
- Проверяется, является ли символ в позиции
iчислом (с помощью функцииisdigit). - Если символ является числом, выполняется следующая последовательность действий:
- Переменная
vпринимает значение символа в позицииi. - Символ в позиции
iзаменяется на символ в позицииk. - Символ в позиции
kзаменяется на значение переменнойv. - Переменная
kувеличивается на единицу.
- Переменная