-2

2 つの質問があります。アルファベット以外のすべての文字を抽出して表示し、それらを削除するプログラムを作成する必要があります。

シンボルで機能する isalpha を使用していますが、入力文字列に「hello world」のようなスペースがない場合のみです

ただし、「hello! world!」のように複数の単語の場合、最初の感嘆符のみが抽出され、2 番目の感嘆符は抽出されません。

関連する可能性のある2番目の質問です。プログラムに単語間のスペースを検出させたいです(isspaceを試しましたが、間違って使用したに違いありませんか?それらを削除してchar変数に入れます

たとえば、入力が hello4 world! の場合です。3 今日はどうですか? 教えてほしい

削除: 4 削除: 削除: ! 削除: 削除: 3 削除: 削除: 削除:

要するに、他に方法がない場合は、スペースを !isalpha として検出するか、テキスト間のスペースとして isalpha に似たものを見つけたいと思います。

ありがとう

# include <iostream>
# include <string>

using namespace std;

void main()
{
    string message;


    cin >> message;

    for (int i = 0; message[i]; i++)

    if(!isalpha(message[i]))


        cout << "deleted following character: " << message[i] <<endl;
        else
        cout <<"All is good! \n";


   }
4

2 に答える 2

0

>>単一の単語を読み取り、空白文字が見つかったときに停止します。行全体を読み取るには、

std::getline(cout, message);
于 2014-11-01T12:34:32.137 に答える