我正在寫一個程序,它獲取用戶的字符串輸入並通過空格解析它。雖然循環不允許我正確解析字符串
由於程序需要,直到用戶輸入「退出」重複接收用戶輸入,我把我所有的代碼在如下while循環:
while(cont == true)
{
cin>>command;
string parsedStr[3];
parsedStr[0] = "";
parsedStr[1] = "";
parsedStr[2] = "";
int j = 0;
for(i=0; i<command.size(); i++)
{
if (command[i] == ' ')
{
++j;
}
parsedStr[j] += command[i];
}
cout<<"Command: "<<parsedStr[0]<<"\n";
cout<<"Argument 1: "<<parsedStr[1]<<"\n";
cout<<"Argument 2: "<<parsedStr[2]<<"\n";
/* do my desired operations according to the received command */
}
然而,這是當我輸入一個命令,如「執行12 345」,它會顯示如下的結果和不分析的論點:
Command: execute
Argument 1:
Argument 2:
Command: 12
Argument 1:
Argument 2:
Command: 345
Argument 1:
Argument 2:
但是當我移動解析器出while循環,它完美的作品,並打印出以下內容:
Command: execute
Argument 1: 12
Argument 2: 345
我該怎麼辦?
您可以使用正則表達式和拆分空間。 – Bill
'ostream :: operator >>()'在空格處停留字符。變量'command'中不會有''''。 – timrau