如何读取参数中的字符串
How to read strings inside parameters
假设我的程序需要用户输入,而用户决定输入以下内容:
"new('Hi', 'Bye')"
Hi 和 Bye 只是一个例子,我们不知道用户实际会输入什么。
我将如何提取这 2 个字符串(hi 和 bye)?我不明白该怎么做。我阅读了更多有关 C++ 中的字符串的信息,但我仍然不知道如何执行此操作。
您实际上并没有从用户输入中得到两个字符串。即使他们把它格式化成
"word" "more words" "blah blah blah"
...它仍将存储在单个字符串中。无论您想做什么,您都可能想尝试单独询问字符串,或指导用户如何显示分隔符的位置(可能建议使用逗号)。
至于用现有的字符串制作多个字符串,如果您知道分隔符(我使用逗号)并将其分成两个字符串,则始终可以通读大字符串,s1
和 s2
,这样:
input = "color, length";
string s1 = "";
string s2 = "";
for (int i=0; i<input.length(); i++)
{
if(input[i] == ",")
{
s1 = input.substr(0, i);
s2 = input.substr(i+1);
break;
}
}
假设我的程序需要用户输入,而用户决定输入以下内容: "new('Hi', 'Bye')"
Hi 和 Bye 只是一个例子,我们不知道用户实际会输入什么。
我将如何提取这 2 个字符串(hi 和 bye)?我不明白该怎么做。我阅读了更多有关 C++ 中的字符串的信息,但我仍然不知道如何执行此操作。
您实际上并没有从用户输入中得到两个字符串。即使他们把它格式化成
"word" "more words" "blah blah blah"
...它仍将存储在单个字符串中。无论您想做什么,您都可能想尝试单独询问字符串,或指导用户如何显示分隔符的位置(可能建议使用逗号)。
至于用现有的字符串制作多个字符串,如果您知道分隔符(我使用逗号)并将其分成两个字符串,则始终可以通读大字符串,s1
和 s2
,这样:
input = "color, length";
string s1 = "";
string s2 = "";
for (int i=0; i<input.length(); i++)
{
if(input[i] == ",")
{
s1 = input.substr(0, i);
s2 = input.substr(i+1);
break;
}
}