📌  相关文章
📜  如何在C ++中输入逗号分隔的字符串?(1)

📅  最后修改于: 2023-12-03 15:24:27.141000             🧑  作者: Mango

如何在C++中输入逗号分隔的字符串?

如果你需要在C++程序中输入一组逗号分隔的字符串,并将它们存储在一个数组中,那么你来对地方了。

解决方案

我们可以使用std::getline()函数和std::stringstream来实现输入和字符串分割。此外,我们还需要使用std::vector容器来存储每个字符串。

#include <iostream>
#include <sstream>
#include <vector>

int main()
{
    std::string input;
    std::vector<std::string> strings;

    std::cout << "Enter a comma-separated list of strings: ";
    std::getline(std::cin, input);

    // 使用stringstream将输入的字符串分割成多个子字符串
    std::stringstream ss(input);
    std::string token;
    while (std::getline(ss, token, ','))
    {
        // 将每个子字符串存储到vector中
        strings.push_back(token);
    }

    // 打印输出所有输入的字符串
    for (const auto& str : strings)
    {
        std::cout << str << std::endl;
    }

    return 0;
}
代码解释
  1. 首先,我们声明一个字符串input,用于存储从用户输入得到的逗号分隔字符串。
  2. 接下来,我们声明一个std::vector<std::string>容器,用于存储分割后的多个字符串。
  3. 我们通过std::cout提示用户输入逗号分隔的字符串,并使用std::getline()从标准输入读取用户的输入,并将其存储在input字符串中。
  4. 我们创建一个std::stringstream对象ss,并将input传递给它。这使我们能够使用std::getline()函数将ss中的字符串分割成多个子字符串。
  5. 我们定义一个名为token的字符串变量,以存储从ss读取的每个子字符串。
  6. 我们在循环中使用std::getline()函数,将ss中的字符串分割成多个子字符串,并将它们存储在token变量中。
  7. 每个子字符串都存储在std::vector<std::string>中。
  8. 最后,我们通过循环遍历std::vector中的所有子字符串,并将它们打印到标准输出中。
结论

本文介绍了如何在C++程序中输入逗号分隔的字符串,并将其存储在一个数组中。我们使用了std::getline()函数、std::stringstreamstd::vector容器等技术实现了字符串的输入和分割。