Введенное предложение вывести большыми буквами - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вот у меня есть программа, которая должна введеное предложение: 1) вывести большыми буквами 2() вывести первую букву каждого слова большой буквой Вот текст программы, как на меня она должна бы работать, но ЭТО НЕ ТАК))
#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 ();
 
}
Ошыбки следующие: 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 )

Решение задачи: «Введенное предложение вывести большыми буквами»

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;
}
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлены следующие переменные:
    • st - массив символов (строка), в который будет записываться ввод пользователя;
    • i - счётчик символов в цикле;
    • j - счётчик пробелов в строке;
    • len - длина строки;
    • flag - флаг, используемый для контроля вывода символов.
  2. Пользователю предлагается ввести строку.
  3. Введённая строка сохраняется в массиве st.
  4. Вычисляется длина строки с помощью функции strlen().
  5. Выводится сообщение Преобразованная строка: и начинается цикл обработки каждого символа строки.
  6. В каждой итерации цикла проверяется, является ли текущий символ буквой нижнего регистра (от 'a' до 'z'). Если да, то он преобразуется в верхний регистр (увеличивается на 32 по ASCII), выводится на экран и сбрасывается флаг flag. Если текущий символ - пробел и предыдущий символ также был пробелом, то на следующей итерации цикла (с новым значением i) флаг flag устанавливается в 1. Если текущий символ - не пробел и предыдущий символ был пробелом, то на следующей итерации цикла (с новым значением i) выводится символ, а флаг flag устанавливается в 1.
  7. После обработки всех символов, программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы