В строке, состоящей из алфавитно-цифровых символов, переместить все заглавные буквы в ее начало. - 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
увеличивается на единицу.
- Переменная
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д