/**
整数字符串变数字
*/
#include<stdio.h>
#include<string.h>
#include<math.h>
int strToNumber();
int powTen(int n);//返回10的n次方
void main()
{
printf("你输入的整数位%d\n",strToNumber());//读入整数字符串,返回int整数
}
int powTen(int n)//返回10的n次方
{
int result=1;
int i;
for(i=1;i<=n;i++)
{
result*=10;
}
return result;
}
int strToNumber()
{
char numbers[32];
scanf("%s",numbers);
int length=strlen(numbers);//获取有效字符串长度
int sum=0;
int i;
for(i=0;i<length;i++)
{
if(numbers[i]>='0'&&numbers[i]<='9')
sum+=((int)numbers[i]-48)*powTen(length-i-1);
else
{
printf("遇到数字!终止\n");
sum=sum/10;//后退一位
break;
}
}
// printf("%d\n",i);
return sum;
}
测试:
1234
你输入的整数位1234
Process returned 19 (0x13) execution time : 3.042 s
Press any key to continue.
测试2:
123j
遇到数字!终止
你输入的整数位123
Process returned 18 (0x12) execution time : 3.619 s
Press any key to continue.