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

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

C++编程中,有时候会遇到需要从输入中读取逗号分隔的字符串的情况。那么该如何在C++中实现呢?本文将为您介绍几种实现方法。

方法一:使用getline和stringstream

使用C++标准库中的getline和stringstream函数可以很方便地读取逗号分隔的字符串。

#include <iostream>
#include <sstream>

using namespace std;

int main()
{
    string input_str;

    cout << "请输入逗号分隔的字符串:";
    getline(cin, input_str);

    stringstream ss(input_str); // 将input_str转换为stringstream格式

    string substr;
    while (getline(ss, substr, ',')) // 以逗号为分隔符提取子字符串
    {
        cout << substr << endl;
    }

    return 0;
}

运行结果:

请输入逗号分隔的字符串:A,B,C,D
A
B
C
D

方法二:使用strtok函数

strtok函数可以将字符串按照指定分隔符进行分割。

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char input_str[100];

    cout << "请输入逗号分隔的字符串:";
    cin.getline(input_str, 100);

    char* substr = strtok(input_str, ","); // 以逗号为分隔符提取子字符串
    while (substr != NULL)
    {
        cout << substr << endl;
        substr = strtok(NULL, ",");
    }

    return 0;
}

运行结果:

请输入逗号分隔的字符串:A,B,C,D
A
B
C
D

方法三:使用string的find和substr函数

另一种常见的方法是使用string的find和substr函数。

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string input_str;

    cout << "请输入逗号分隔的字符串:";
    getline(cin, input_str);

    size_t pos = 0;
    string substr;
    while ((pos = input_str.find(",")) != string::npos) // 查找逗号位置
    {
        substr = input_str.substr(0, pos); // 提取子字符串
        cout << substr << endl;
        input_str.erase(0, pos + 1); // 将已经提取的子字符串从input_str中删除
    }
    cout << input_str << endl; // 输出最后一个子字符串

    return 0;
}

运行结果:

请输入逗号分隔的字符串:A,B,C,D
A
B
C
D

通过以上方法,我们可以轻松地实现在C++中输入逗号分隔的字符串的功能。

结论

本文介绍了三种C++中输入逗号分隔的字符串的方法,分别为使用getline和stringstream函数、strtok函数以及string的find和substr函数。通过这些方法,我们可以方便地实现对逗号分隔的字符串的处理。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程