C语言数组输出出现乱码
intmain(void){inti;charstr[50];gets(str);for(i=0;i<50;i++){printf("%c",str[i]);}}输入he...
int main(void)
{
int i;
char str[50];
gets(str);
for(i=0;i<50;i++)
{
printf("%c",str[i]);
}
}
输入hello后:
hello 烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫Press any key to continue
怎么才能把 ' 烫 ' 去掉 展开
{
int i;
char str[50];
gets(str);
for(i=0;i<50;i++)
{
printf("%c",str[i]);
}
}
输入hello后:
hello 烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫Press any key to continue
怎么才能把 ' 烫 ' 去掉 展开
展开全部
这是因为你的数组没有初始化,而你要全部输出,所以会这样显示,你可以利用strlen函数获取到字符串长度,然后再for循环里把50换为这个长度strlen(str),就可以了,记得要加头文件,#inclued<string.h>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main(void)
{
int i = 0;
char str[50];
gets(str);
while(str[i] != '\0')
{
printf("%c",str[i]);
i++;
}
}
C语言中字符串以'\0'结尾,你这样循环50次把超过你输入的字符范围都读出来了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
int i;
char str[50];
gets(str);
for(i=0;str[i]!='\0';i++)
{
printf("%c",str[i]);
}
}
int main()
{
int i;
char str[50];
gets(str);
for(i=0;str[i]!='\0';i++)
{
printf("%c",str[i]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不太严谨的改法是循环条件i<50改为str[i]!='\0'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询