输入一个以回车结束的字符串(少于80个字符),将其中第一次出现的连续的数字字符(“0”~“9”)转换为整数,遇到非数字字符则停止。例如,将字符串“x+y=35+z+9”转换为整数是35。(源程序 test07_6.cpp)
输入示例:
Enter a string: Free082jeep5
输出示例:
82
俩种思路:
#include<stdio.h>
int main()
{
int i,number;
char str[80];
i=0;
while((str[i]=getchar())!='\n'){
i++;
}
i=0;
while(str[i]!='\0')
{
if(str[i]>='0' && str[i]<='9'){
break;
}
i++;
}
number=0;
while(str[i]!='\n')
{
if(str[i]>='0' && str[i]<='9')
{
number=number*10+str[i]-'0';
if(str[i+1]<'0' || str[i+1]>'9') break;
}
i++;
}
printf("%d\n",number);
return 0;
}
#include <stdio.h>
int main(void)
{
int j=0,flag=0,i,number=0;
char str[80];
printf("Enter a string:");
i=0;
while((str[i]=getchar())!='\n') i++;
str[i]='\0';
i=0;
while(i<80)
{
if(str[i]>='0'&&str[i]<='9')
{
i++;
flag=1;
}
else if(flag==0){
i++;
}
else break;
}
number=0;
while(j<i)
{
if(str[j]>='0'&& str[j]<='9') number=number*10+str[j]-'0';
j++;
}
printf("number=%d\n", number);
return 0;
}