本帖最后由 jhq999 于 2021-8-26 15:18 编辑 #include <stdio.h>
#include <math.h>
int main()
{
char a[10000];
char b[10000];
char c[10000];
int sum,temp,i,j;
long long int sum1=0;
int count=0,place=0;
printf("请输入一串字符:");
scanf("%s",&a);
getchar();
while(1)
{
if(a[count]>='0' && a[count]<='9')
{
b[place]=a[count];
place=place+1;
// if(a[count+1]>'9' || a[count+1]<'1' || a[count+1] == '\n')////删除
// break;
}
if(a[count]=='\0')//\n改成\0
break;
count=count+1;
}
b[place]='\0';//b没有初始化成0,所以必须给个字符串结尾
count=0,place=0;
sum=0;//初始化sum
while(1)
{
c[sum]=b[sum];//移动到这里,因为数组c没有初始化成0
if(b[sum] == '\0')
break;
// place++;//删
//count++;//删
sum++;
}
count=0,place=0;
j=sum-1;
for(i=0;i<sum;i++)
{
temp=c[count]-'0';
sum1=sum1+temp*pow(10.0,j);\\我用的是VS。第一个参数必须是浮点
count++;
j--;
}
if(sum1>2147483647)
printf("数值超出范围,结果未定义");
else if(b[0] == '\0')
printf("并未找到任何数值");
else
printf("%s",b);
getchar();
}
|