你好,我对C ++很陌生。我有一个关于字符串分割的问题。
例如,我有这样的字符串
std::string str = "jump 110 5";
并且在字符串“ jump”,“ 110”和“ 5”之间可以有尽可能多的空格。
我想将110保存在int
变量中,并且如果在数字110之后出现另一个数字或字符,则循环应该中断。
到目前为止,我已经删除了所有空格并在变量中保存了110,并将其打印出来,而数字5被忽略了。
在110说字符串无效后,如何中断或打印错误消息?
这是我的代码:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
int main() {
std::string str = "jump 110 5";
size_t i = 0;
for ( ; i < str.length(); i++ ){ if ( isdigit(str[i]) ) break; }
str = str.substr(i, str.length() - i );
int id = atoi(str.c_str());
std::cout<<id;
return 0;
}
编辑:第二次尝试。这是我写的将值解析为向量的内容。如果向量具有一组以上的数字,则会打印并显示错误。