66问答网
所有问题
c语言这个程序输出字符串为什么后面乱码?
如题所述
举报该问题
推荐答案 2020-11-13
printf打印的字符串必须以'\0'结尾,而s数组明显没有那个结尾字符串,你应该定义一个含6个字符的数组,最后一个字符为'\0'
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/U2D2snpiis22xpsixD9.html
相似回答
c语言输出乱码
,求解决方法
答:
输出乱码
的原因见下图标红的地方:第一个标红处的for循环语句后面多了分号; 导致下面{}中的语句与for无关 而printf()语句中的i此时等于N,又stu[N]上没有数据,所以会输出乱码;同理
后面输出
最高成绩学生时,i的值也为N,因此最后打印stu[i]时也会输出乱码;我觉得你的本意应该是输出stu[no],...
c语言输出字符串
数组出现
乱码
答:
C语言字符串
以'\0'结尾,如果不以该符号结尾则
输出
%s时会出错,
程序
一直往存放字符串的地址访问。而你的程序中并没有赋'\0'给那两个数组,所以会出现
乱码
。没有出现乱码的数组是因为你初始化了,初始化时编译器会给它加上'\0'符号。
C语言
运行的结果
后面为什么
出现
乱码
答:
每个正常的
字符串
的结尾都有一个\0, 而你在循环最后只判断是不是回车, 是回车只是结束输入, 并没有把回车变成\0, 或在回车后面加上一个\0, 这样你的while就无法判断*fp是不是字符串结尾.
这
段
c语言程序输出
末尾有
乱码
,是
什么
原因
答:
strcpy(
c
,a+3);strcat(c,b);//这一步,是把b接在c的后面,但是b的后面不是''\0',所以会取值越界。printf("%s",c);} 改法,把数组定义成b[4].并初始化如:char b[4] = {0};为了规范 在给b赋值时;for(i=0;i<=3;i++){ if(i == 3)b[i] = '\0';else b[i]=a[...
c语言
:
这个程序为什么输出
来是一堆
乱码?
答:
这个错误的原因是对union的定义不清楚,联合的意思是几个成员共用一个内存空间,但是每个时刻只能有一个成员占用。所以在
程序
中只有data.a有值,所以可以如下测试下:include <iostream> include <string> using namespace std;int main(){ union dt {int a;char b;double
c
; }data;data.a=5;co...
c语言
写一个
字符串
连接 效果实现了
后面
的
乱码
是
什么
引起的 求解决方案...
答:
你函数里面的循环得改成:for(
c
=0;c<=m;c++)。这是因为
字符串
的结束符让你弄丢的原因。每个字符串都是以'\0'为结束符的,比如一个字符串"ABCD",事实上它在数组里D的后面,还会有一个'\0',所以你要把这个也给复制给第一个串,这样才不会出
乱码
。也就是说,一个用strlen测出来是6的...
大家正在搜
字符串排序输入5个字符串
c语言怎么输入字符串
c语言输出字符串
c语言字符串转数字
字符串c语言
c语言字符串数组
c语言字符串定义
c语言比较字符串大小
c语言字符串函数
相关问题
c语言打印字符串乱码,应该怎么办?
C语言,字符串输出是乱码
C语言 字符串输出时最后出现一个乱码 在线等
C语言:使用字符指针数组输入字符串,下面的程序运行后字符串5...
C语言文件问题:为什么下面程序会有乱码输出?
C语言排序程序为啥我输出后出现乱码
c语言:这个程序为什么输出来是一堆乱码?
c语言的这个C程序 为什么输出的是乱码?