Заменить строчные буквы на заглавные - C (СИ)
Формулировка задачи:
после комбинаций :точка и ли пробел точка
void main()
{
char s[80];
int r;
r=0;
while (s[r]!='\0')
{
if (s[r]=='.')
{
if (s[r+1]==' ')
{
if ((s[r+2]>=97)&&(s[r+2]<=122))
{
s[r+2]=toupper(s[r+2]);
r++;
}
else r++;
}
if ((s[r+1]>=97)&&(s[r+1]<=122))
{
s[r+1]=toupper(s[r+1]);
r++;
}
else r++;
}
else r++;
}
fprintf(fout,"%s",s);
}Решение задачи: «Заменить строчные буквы на заглавные»
textual
Листинг программы
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
#include <assert.h>
int main(void) {
wchar_t buf[BUFSIZ], * p;
assert(setlocale(LC_ALL, "ru_RU.UTF-8"));
while ( printf("Строка: ") && fgetws(buf, BUFSIZ, stdin) && *buf != L'\n' ) {
for ( p = buf; *p != L'\0'; ++p )
*p = towupper(*p);
printf("ЗАГЛАВНЫМИ: %ls", buf);
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с широкими символами и локалью
- Установка локали на
ru_RU.UTF-8с помощью функции setlocale - Ввод строки с помощью fgetws
- Проход по каждому символу в строке и замена его на заглавный с помощью функции towupper
- Вывод преобразованной строки с помощью функции printf