Ввести строку , заменить первые буквы на заглавные и вывести пословно - C (СИ)
Формулировка задачи:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
string sumstr="";
getline(cin,str);
char d[3];
d[0]=' ';
d[1]='.';
d[2]='!';
d[3]='?';
for(int i=0; i<str.length(); i++)
{
if(str[i]==d[0] || str[i]==d[1] || str[i]==d[2] || str[i]==d[3])
{
AnsiUpperCase(sumstr[0]);
cout<<sumstr<<endl;
sumstr="";
}
else
sumstr=sumstr+str[i];
}
return 0;
}Решение задачи: «Ввести строку , заменить первые буквы на заглавные и вывести пословно»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char* AnsiUpperCase(char* str) {
char* p = str;
for (; *p != '\0'; ++p) {
*p = toupper(*p);
}
return str;
}
int main(int argc, char* argv[]) {
const char CDelim[] = " \t\n.!?";
char text[256];
fgets(text, sizeof(text), stdin);
char* p = strtok(text, CDelim);
while (p != NULL) {
printf("%s\n", AnsiUpperCase(p));
p = strtok(NULL, CDelim);
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со строками и символами.
- Создание функции
AnsiUpperCase, которая принимает указатель на строку и возвращает указатель на новую строку, в которой все символы преобразованы в верхний регистр. - Прохождение по всем символам строки, начиная с первого, и преобразование каждого символа в верхний регистр с помощью функции
toupper. - Возвращение исходной строки.
- Ввод строки с помощью функции
fgetsв буферtext. - Разделение введенной строки на отдельные слова с помощью функции
strtok, где разделителями являются пробел, табуляция, перевод строки, точка, восклицательный знак и вопросительный знак. - Вывод каждого слова в формате
Слово\nс помощью функцииprintf, предварительно применив функциюAnsiUpperCaseдля преобразования первого символа каждого слова в верхний регистр. - После вывода каждого слова, функция
strtokищет следующее слово или возвращаетNULL, если больше слов не осталось. - Цикл продолжается до тех пор, пока не будет найдено
NULL. - Возвращение 0, что означает успешный конец работы программы.