我有两个问题。我需要编写一个程序来提取所有非字母字符并显示它们,然后删除它们。
我正在使用适用于符号的 isalpha,但前提是输入字符串没有像"hello world"这样的空格
但如果是不止一个词,比如"你好!世界!",它只会提取第一个感叹号,而不会提取第二个感叹号。
第二个可能相关的问题,我希望我的程序检测单词之间的空格(我尝试了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";
}
>>
读取单个单词,在找到空格字符时停止。要阅读整行,您需要
std::getline(cout, message);
有一种更好的方法可以获取非字母字符,
您可以检查每个字符的 asci 值,如果不在其中并且不是空格(空格 asci val(,则与字母 asci 字符进行比较,然后你会得到你的非字母字符。您可以在此处获取所有 ascii 代码:=> http://www.asciitable.com/
-贾耶什