c++ - 从一个句子中逐字打印

标签 c++ string split

我有一个句子“Computer Science”作为我的输入,我想分别打印 Computer 和 Science。我用 C++ 编写了一个程序,但它只打印“计算机”。谁能帮我找出为什么它不单独打印这两个词?

int main()
{
    char string[]="Computer Science";
    int l;
    l=strlen(string);
    char begin[l];
    int i=0,ind=0;

        while(string[i]!='\0')
        {
            begin[ind]=string[i];
            if(string[i]==' ')
                {
                    begin[ind]=NULL;
                    cout<<begin<<"\n";

                    ind=0;
                    //ind++;
                    i++;
                }
            else
            {

                ind++;
                i++;
            }
        }

    return 0;
}

最佳答案

现代 C++ 提供了许多处理字符串的功能。这些功能旨在以更有效的方式简化处理字符串。除非必须,否则不要使用 C-Style 字符串。在你的情况下,你可以做

#include <iostream>
#include <string>

int main()
{
    std::string str("Computer Science");
    for(int i(0); i < str.size(); ++i){
        if( str[i] == ' ' )
            std::cout << '\n';
        else{
            std::cout << str[i];
        }
    }
    std::cout << std::endl;

    return 0;
}

使用 C++,您可以减少更多,但我保留原样。

关于c++ - 从一个句子中逐字打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44355298/

相关文章:

c++ - 十六进制字符串到十六进制字符[]

c++ - 为什么不能用常量表达式声明数组?

c++ - 在参数化构造函数中将数组作为参数传递

c# - 在字符串出现后删除文本

java - 从Java中的字符串中提取数字

javascript - 如何将 css 应用于 textarea 标签内以逗号分隔的文本? (React.js 元素)

python - 使用字符串列表作为模式分割字符串

c++ - 打印函数的地址...声明?

python - python 去掉字符串中的引号

python - 如何根据列表项拆分列表并创建相关字符串