回 帖 发 新 帖 刷新版面

主题:求助:程序居然出现了乱码

写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出
这是我写的代码,虽然编译通过且实现了功能,但却出现乱码问题,(见附图)求大侠帮忙改一下
[code=c]
#include<stdio.h>
void fuzhi(char a[100],char b[100])
{  
    int i,j=0;

    for(i=0;a[i]!='\0';i++)  
        if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'||a[i]=='A'||  
    a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U') 
        {b[j]=a[i]; j++;}
    [color=FF0000]b[j+1]='\0';[/color]  
}  
void main()  
{
    char str1[100],str2[100];
    printf("请输入字符串\n");  
    gets(str1);  
    fuzhi(str1,str2); 
    printf("元音字母是\n"); 
    puts(str2);  
}
[/code]
涂红的那一句是我后来修改的,但还是有乱码。

回复列表 (共6个回复)

沙发

字符串以'\0'结尾,但你何时向 char b[100] 中输出过零?

板凳

b[j+1]='\0'

3 楼

烫就晾晾

4 楼

puts(str2);输出时由于str2中没有'\0',所以puts会在内存中找到str2后第一个空字符再停止输出

5 楼


修改后还是有乱码啊,再怎么改呢?

6 楼


什么意思?

我来回复

您尚未登录,请登录后再回复。点此登录或注册