无法从字符串获取数字输入

Cant get number input from string

本文关键字:获取 数字输入 字符串      更新时间:2023-10-16

只是尝试使用代码块从字符串中获取数字。不知道代码块是否处于故障,因为我听说使用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;
}