int main()
{
char a[M+1] = "qwertyuiopasdfghjklzxcvbnm";
char b[N],c[N];
int i,n,x,p;
printf("请输入一串字符串:");
gets(b);
for (i = 0;b[i] != '\0';i++)
{
for (n = 0;n < 27;n++)
{
if (b[i] != a[n])
x = 0;
else
{
x = 1;
break;
}
}
if (x = 0)
b[i] = 0;
else
{
p = 0;
c[p] = b[i];
p++;
}
}
puts(c);
return 0;
}
为什么这个结果不对哟?
结果是这样的:
请输入一串字符串:398892djjowf\23@#
Press any key to continue
==
改过来还是这样的。
请输入一串字符串:dhuo3.
o烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫蘢huo
Press any key to continue
用调试过了。
就是一到那个a就出现了烫烫烫。
@shmily涂: char a[]="abc........";c语言中必须声明长度吧,应该是char a[26]="abc......";
另外你的p初始化位置不太对,你这样写,一直赋值的是c[0]; p应该在定义的时候赋初值;
如下:
@wwr01: 还是不行,怎样都会出现这些烫。。
@shmily涂: 还是char数组的问题,这样试一下
char a[26]={'a','b',......};
char a[] = "qwertyuiopasdfghjklzxcvbnm";
char b[N],c[N];
memset( b , 0 , N sizeof(char) );
memset( b , 0 , N sizeof(char) );
已经解决了,是那个c[]数组,在对他赋值后,没有加入‘\0‘,所以那些没赋值的位置就被赋值了这些东西。