0

C / C ++の他のすべてを無視して、指定された入力行からのみ英数字を読み取ることは可能ですか?私は一度に全行を読み込もうとしています。

次の行を読む必要があるとします。

 aaa, bbb, ccc .

ここでは、入力時にコンマ、ドット、スペースを無視するつもりです。

4

2 に答える 2

4

これはいくつかの方法で行うことができます。たとえば、最も簡単な方法は、行全体を読み取ってから、後で不要なビットを削除することです。

#include <algorithm>
#include <iostream>
#include <string>
#include <functional>
#include <ctype.h>

int main() {
  std::string line;
  while (std::getline(std::cin, line)) {
    line.erase(std::remove_if(line.begin(), line.end(), std::not1(std::ptr_fun(isalnum))), line.end());
    std::cout << line << "\n";
  }
}

行を読み取り、。に対してfalseを返す文字をすべて削除しますisalnum。(C ++ 11では、これを少し単純化できます)

于 2012-06-23T14:26:52.757 に答える
-2

文字列配列を記述し、コンマ、ドット、およびスペースを文字列区切り文字として使用できます。各文字列を配列に格納してから出力します。

aaa, bbb, ccc .

aaa will be stored in string[0]
bbb will be stored in string[1]
ccc will be stored in string[2]

次に、forループを介して文字列を出力するだけで、次のようになります。

aabbcc

于 2012-06-23T14:22:53.820 に答える