gpt4 book ai didi

C++,如何将多个输入除以空格?

转载 作者:行者123 更新时间:2023-11-30 02:05:37 25 4
gpt4 key购买 nike

我有一个程序需要获取多个 cstring。我目前一次得到一个,然后问你是否想输入另一个词。我找不到任何简单的方法来获得一个输入,其中单词被分隔为空格。即“一二三”并将输入保存在 cstrings 数组中。

typedef char cstring[20]; cstring myWords[50];

目前我正在尝试使用 getline 并将输入保存到 cstring,然后我正在尝试使用 string.h 库来操作它。这是正确的做法吗?还有什么办法可以做到这一点?

最佳答案

如果你真的必须使用c风格的字符串,你可以使用istream::getlinestrtokstrcpy 功能:

typedef char cstring[20];           // are you sure that 20 chars will be enough?
cstring myWords[50];
char line[2048]; // what's the max length of line?
std::cin.getline(line, 2048);

int i = 0;
char* nextWord = strtok(line, " \t\r\n");
while (nextWord != NULL)
{
strcpy(myWords[i++], nextWord);
nextWord = strtok(NULL, " \t\r\n");
}

但更好的方法是使用 std::stringstd::getlinestd::istringstream>> 运算符代替:

using namespace std;
vector<string> myWords;

string line;
if (getline(cin, line))
{
istringstream is(line);
string word;
while (is >> word)
myWords.push_back(word);
}

关于C++,如何将多个输入除以空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9471034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com