【发布时间】:2020-08-25 00:24:13
【问题描述】:
您好,我是 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;
}
【问题讨论】: