编写一个函数,将字符串转换成相应的整数。转换时,遇到非数字字符则停止转换

来源:百度知道 编辑:UC知道 时间:2024/06/05 21:37:23
问一道题哈:
编写一个函数,将字符串转换成相应的整数。转换时,遇到非数字字符则停止转换。例如:“123”→123,“12a3”→12,“a123”→0
怎么写?

main()
{
long int string_to_number(char *);
long int m;
m=string_to_number("112g456hj");
printf("%ld",m);
getch();
}

long int string_to_number(char *p)
{
long int m=0;
while(1)
if((*p)>'9'||(*p)<'0')
return m;
else
{
m*=10;
m+=(int)*p-48;
p++;
}
}

核心代码:
num=0;
for(i=strlen(str),j=1; i > 0; --i,j*=10)
{
if (str[i] >= '0' || str[i] <= '9')
{
num += str[i] * j;
}else
break;
}

#include <iostream>
#include <string>
using namespace std;
int main()
{
char tmp;
string s;

while(cin >> tmp)
{
if(tmp >= '0' && tmp <= '9')
{
s.push_back(tmp);
}
else
{