c ++ 如何提取单词之间的空格(如果有)



我有两个问题。我需要编写一个程序来提取所有非字母字符并显示它们,然后删除它们。

我正在使用适用于符号的 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/

-贾耶什

相关内容

  • 没有找到相关文章

最新更新