只是尝试使用代码块从字符串中获取数字。我不知道代码块是否在错误原因上,我听说使用stoi函数时存在问题。

只是尝试执行以下操作:

字符串输入

cin>>input;// user defined such as input="he gave 6 apples " ( taking only one number no matter how big )



int a;
a=stoi(input);// will be 6

最佳答案

首先,您可能无法使用cin来获得整行。空间令人不安。您应该改为使用getline()
其次,我更喜欢使用int atoi(const char *)
码:

#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
int myFunction(string s)
{
    int i;
    for(i = 0; i < s.length(); i++)
        if(s[i] >= '0' && s[i] <= '9')
            break;
    return atoi(&(s[i]));
}
int main()
{
    string s;
    getline(cin, s);
    int numFromLine = myFunction(s);
    cout << numFromLine << endl;
    return 0;
}

10-06 10:23
查看更多