是否有可能只讀取給定輸入行中的字母數字字符而忽略C/C++中的所有其他字符?我試圖一次讀全行。在C++中讀取行時過濾非字母數字字符?
假設我們要讀行:
aaa, bbb, ccc .
在這裏,我的本意是忽略逗號,句號和空間,同時考慮輸入。
是否有可能只讀取給定輸入行中的字母數字字符而忽略C/C++中的所有其他字符?我試圖一次讀全行。在C++中讀取行時過濾非字母數字字符?
假設我們要讀行:
aaa, bbb, ccc .
在這裏,我的本意是忽略逗號,句號和空間,同時考慮輸入。
您可以通過幾種方式做到這一點,例如最簡單的就是讀取整個行,然後刪除不希望以後的位:
#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";
}
}
讀一行,然後刪除其爲isalnum
返回false任何字符。 (在C++ 11中,你可以稍微簡化一下)
您可以編寫一個字符串數組,並使用逗號,點和空格作爲字符串分隔符。將每個字符串存儲在數組中然後輸出。
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
除了comman,dot和space之外,我必須忽略所有非字母數字字符。 – sushil
這就是我正在嘗試做的,但我無法得到它的工作:p – chris