各文の最初の文字を文字列で大文字にするプログラムを作成する必要があります。たとえば、文字列引数が "hello"の場合私の名前はジョー。あなたの名前は何ですか? "という文字列を操作する必要があります。私の名前はジョー。あなたの名前は何ですか? "私は何が間違っているのか分かりません。助言がありますか?ここに私のコードは次のとおりです。コメントで述べたように各文の最初の単語を大文字にする
#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)SIZEに達するまでループすると、ユーザーが入力したものの最後を過ぎる可能性が高くなります。 –