Изменение регистра символов в строке - C (СИ)
Формулировка задачи:
Дана строка только из прописных букв. Нужно преобразовать ее так, чтобы первая буква после точки была прописной, а остальные - строчными. Сделал только ввод строки
#include <stdio.h> int main(int argc, const char * argv[]) { char s1[20]; fflush(stdin); printf("vvedite stroky propisnih simvoov: \n"); scanf("%s", &s1[0]); return 0; }
Решение задачи: «Изменение регистра символов в строке»
textual
Листинг программы
#include <stdio.h> #include <ctype.h> int main( int argc, char** argv) { int i=0, j; char s1[100], *c; fflush(stdin); printf("vvedite stroky propisnih simvoov: \n"); fgets(s1, 100, stdin); s1[0] = toupper(s1[0]); for (c = s1 + 1; *c; ++c) *c = tolower(*c); while(i < 100){ if (s1[i++] == '.') for (j = i ; j < 100; j++) if (!isspace(s1[j])) { s1[j] = toupper(s1[j]); break; } } puts(s1); getchar(); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с консолью и проверки символов на специальные символы.
- Определяем основную функцию программы - main.
- Инициализируем переменные: i=0, j, c, s1.
- Выводим сообщение с просьбой ввести строку.
- Считываем строку с помощью функции fgets.
- Приводим первый символ строки к верхнему регистру с помощью функции toupper.
- В цикле проходим по каждому символу строки (начиная со второго) и приводим его к нижнему регистру с помощью функции tolower.
- В цикле проходим по каждому символу строки (начиная с первого) и если символ является точкой, то в следующем цикле проходим по всем символам начиная с текущего индекса и проверяем каждый символ на специальный символ (не пробел). Если символ не является пробелом, то приводим его к верхнему регистру и выходим из цикла.
- Выводим измененную строку с помощью функции puts.
- Получаем символ конца файла с помощью функции getchar.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д