找到第三个子字符串后的打印错误消息

问题描述 投票:0回答:1

你好,我对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;    
}
c++ string spaces
1个回答
0
投票

编辑:第二次尝试。这是我写的将值解析为向量的内容。如果向量具有一组以上的数字,则会打印并显示错误。

© www.soinside.com 2019 - 2024. All rights reserved.