首页 新闻 会员 周边 捐助

想问一个关于C语言的题目,希望大佬能指点指点。

0
悬赏园豆:15 [已解决问题] 解决于 2019-11-07 21:47

include<stdio.h>

include<string.h>

define M 26

define N 60

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@#

烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫?98892djjowf\23@

Press any key to continue

shmily涂的主页 shmily涂 | 初学一级 | 园豆:4
提问于:2019-11-05 14:47
< >
分享
最佳答案
0

==

收获园豆:15
你小子嚣张呀 | 小虾三级 |园豆:630 | 2019-11-06 11:38

改过来还是这样的。
请输入一串字符串:dhuo3. o烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫蘢huo
Press any key to continue

shmily涂 | 园豆:4 (初学一级) | 2019-11-06 12:40

用调试过了。

shmily涂 | 园豆:4 (初学一级) | 2019-11-06 13:05

就是一到那个a就出现了烫烫烫。

shmily涂 | 园豆:4 (初学一级) | 2019-11-06 13:05

@shmily涂: char a[]="abc........";c语言中必须声明长度吧,应该是char a[26]="abc......";
另外你的p初始化位置不太对,你这样写,一直赋值的是c[0]; p应该在定义的时候赋初值;
如下:

你小子嚣张呀 | 园豆:630 (小虾三级) | 2019-11-06 13:29

@wwr01: 还是不行,怎样都会出现这些烫。。

shmily涂 | 园豆:4 (初学一级) | 2019-11-06 22:52

@shmily涂: 还是char数组的问题,这样试一下
char a[26]={'a','b',......};

你小子嚣张呀 | 园豆:630 (小虾三级) | 2019-11-07 09:18
其他回答(1)
0

char a[] = "qwertyuiopasdfghjklzxcvbnm";
char b[N],c[N];
memset( b , 0 , N sizeof(char) );
memset( b , 0 , N
sizeof(char) );

liqinghan | 园豆:219 (菜鸟二级) | 2019-11-07 09:46

已经解决了,是那个c[]数组,在对他赋值后,没有加入‘\0‘,所以那些没赋值的位置就被赋值了这些东西。

支持(0) 反对(0) shmily涂 | 园豆:4 (初学一级) | 2019-11-07 12:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册