c语言问题找错

来源:百度知道 编辑:UC知道 时间:2024/07/05 16:09:46
输入含有数字和非数字的字符串,将连续的数字作为一个整数放入另一个数组中。并输出这些数字

#include<stdio.h>
void mian(){
char srt1[50],srt2[50],*a,*b;
a=str1,b=str2;
int i,j;

gets(str1);
for (i=0;i!='\0';i++)
{if(0<=*(a+i)<=9)
for (j=i;0<=*(a+j)<=9;j++)
*(b+i)=*(a+i);
*(b+i)='\0';}
for (i=0;i!='\0';i++)
printf("%c",b[i]);
}

if('0'<=*(a+i)<='9');是错误的,不能这么写
应该:if(*(a+i)>='0'&&*(a+i)<='9');就像楼上的一样。

#include<stdio.h>

void main(){
char str1[50],str2[50],*a,*b;
a=str1;b=str2;
int i,j;

gets(str1);
for (i=0;i!='\0';i++)
{
if(*(a+i)<=9 && 0<=*(a+i))
for (j=i;*(a+j)<=9 && 0<=*(a+j);j++)
*(b+i)=*(a+i);
*(b+i)='\0';
}
for (i=0;i!='\0';i++)
printf("%c",b[i]);
}

没错误了