Мне нужно создать программу, которая заглавная буква каждого слова в строке. Например, если строковый аргумент «привет». Меня зовут Джо. как ваше имя? »функция должна манипулировать строкой, поэтому она содержит« Привет. Меня зовут Джо. Как тебя зовут? »Я не уверен, что я делаю неправильно. Какие-либо предложения? Вот мой код:Занимая первое слово в каждом предложении
#include<iostream>
#include<cctype>
#include<cstdlib>
using namespace std;
void capitalize(char sentence[], int const SIZE);
int main()
{
const int SIZE = 1024;
char sentence[SIZE];
cout << "Enter a string: " << endl << endl;
cin.getline(sentence, SIZE);
capitalize(sentence, SIZE);
system("pause");
return(0);
}
void capitalize(char sentence[], int SIZE)
{
char *strPtr;
int count = 0;
sentence[0] = toupper(sentence[0]);
for (int i = 0; i < SIZE; i++)
{
strPtr = strstr(sentence[i], ".");
if (*strPtr == '.')
{
*strPtr = toupper(*strPtr);
}
}
while (sentence[count] != '\0')
{
cout << sentence[count];
count++;
}
}
Каков вывод вашего кода? – Fallen
@Fallen Я получаю сообщение об ошибке, говорящее, что 'strstr' не было объявлено в этой области. – PAXlater
Некоторые советы: 1) Решите, пишете ли вы C или C++. 2) Цикл до тех пор, пока вы не достигнете РАЗМЕРЫ, скорее всего, пройдет мимо конца ввода пользователем. –