Введенное предложение вывести большыми буквами - C (СИ)
Формулировка задачи:
Вот у меня есть программа, которая должна введеное предложение:
1) вывести большыми буквами
2() вывести первую букву каждого слова большой буквой
Вот текст программы, как на меня она должна бы работать, но ЭТО НЕ ТАК))
Ошыбки следующие:
Compiling F:\STUDY\LAB_C\AAAA.CPP:
Error F:\STUDY\LAB_C\AAAA.CPP 16: Function call missing )
Error F:\STUDY\LAB_C\AAAA.CPP 20: Function call missing )
#include <stdio.h> #include <conio.h> #include <conio.h> #include <ctype.h> #include <string.h> void main (void) { clrscr (); char rech[150]; char *p = rech; printf("Input string "); gets(rech); printf("\nPosle obrabotku:\n"); while (*p) { printf("%c",char(toupper(*p++)); //это выводит большыми буквами без проблем . } while(*p==' ') { printf ("\n %c", char(toupper(*p+1)); //если добавить этот цикл, то не работате. } getch (); }
Решение задачи: «Введенное предложение вывести большыми буквами»
textual
Листинг программы
#include <stdio.h> #include <string.h> void main() { char st[80]; int i=0,j=0, len=0,flag=0; printf ("Введите строку: "); gets(st); len=strlen(st); printf ("Преобразованная строка: "); for (i--;i<len;i++) { if ((i==0)||(st[i-1]==' ')) { if ((st[i]>='a')&&(st[i]<='z')) { st[i]=st[i]-32;//смещение по ASCII printf ("%c",st[i]); flag=0; } } if ((i>=1)&&(flag==1)) { printf ("%c",st[i]); } flag=1; } }
Объяснение кода листинга программы
В этом коде:
- Объявлены следующие переменные:
st
- массив символов (строка), в который будет записываться ввод пользователя;i
- счётчик символов в цикле;j
- счётчик пробелов в строке;len
- длина строки;flag
- флаг, используемый для контроля вывода символов.
- Пользователю предлагается ввести строку.
- Введённая строка сохраняется в массиве
st
. - Вычисляется длина строки с помощью функции
strlen()
. - Выводится сообщение
Преобразованная строка:
и начинается цикл обработки каждого символа строки. - В каждой итерации цикла проверяется, является ли текущий символ буквой нижнего регистра (от 'a' до 'z'). Если да, то он преобразуется в верхний регистр (увеличивается на 32 по ASCII), выводится на экран и сбрасывается флаг
flag
. Если текущий символ - пробел и предыдущий символ также был пробелом, то на следующей итерации цикла (с новым значениемi
) флагflag
устанавливается в 1. Если текущий символ - не пробел и предыдущий символ был пробелом, то на следующей итерации цикла (с новым значениемi
) выводится символ, а флагflag
устанавливается в 1. - После обработки всех символов, программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д