问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言中说字符串结尾应该是字符'\n',但是看我在下面的代码中结尾是字符'g',不是也可以吗?

发布网友 发布时间:2022-04-24 01:49

我来回答

5个回答

热心网友 时间:2023-10-19 21:30

      “C语言中说字符串结尾应该是字符'\n',”   这句话是不对的,字符串的默认结尾是‘\0’,例如:

      char a[] = “abcd”,在内存中是这么存储的:

系统会默认的将最后一位加上一个'\0'做为字符串的结束符。这时,a的数组长度为5,而a的字符串长度为4,即它只有4个字符。

再来看这个:

char a[4] = "abcd";

在VS2010中它会提示你的数组越界了,就是我刚才说的原因,它没有足够的地址去存放它的结束符了。

   

热心网友 时间:2023-10-19 21:30

字符串结尾应该是'\n'是在用户输入字符的时候做的用户输入完成的判断。也有用-1结尾 的,而在这个程序中字符串是初始化的。字符串长度是一定的。不需要\n了。

热心网友 时间:2023-10-19 21:31

char name[10]="xiao mingg";你这很明显了,xiao mingg加一起一共10位,数组刚好能够存下,所以系统让你编译通过系统将你最后一个g也人为是一个字符来计算了

热心网友 时间:2023-10-19 21:31

你什么编译器 我VC6报错

error C2117: 'xiao mingg' : array bounds overflow

再一个,即使不报错 可以输出 那是因为你是用for循环控制输出次数的

因此只输出了10次 所以不会出现因为无结束符而输出后面的乱码

如果你用printf 以字符串格式输出的话 %s 那么 由于后面没有结束符

会多余输出很多 直到后面恰好是一个结束符才会完毕 溢出了··

热心网友 时间:2023-10-19 21:32

C语言中说字符串结尾应该是字符'\0',

char name[11]="xiao mingg";//编译器自动在末尾加‘\0’所以是11个字符。

热心网友 时间:2023-10-19 21:30

      “C语言中说字符串结尾应该是字符'\n',”   这句话是不对的,字符串的默认结尾是‘\0’,例如:

      char a[] = “abcd”,在内存中是这么存储的:

系统会默认的将最后一位加上一个'\0'做为字符串的结束符。这时,a的数组长度为5,而a的字符串长度为4,即它只有4个字符。

再来看这个:

char a[4] = "abcd";

在VS2010中它会提示你的数组越界了,就是我刚才说的原因,它没有足够的地址去存放它的结束符了。

   

热心网友 时间:2023-10-19 21:30

字符串结尾应该是'\n'是在用户输入字符的时候做的用户输入完成的判断。也有用-1结尾 的,而在这个程序中字符串是初始化的。字符串长度是一定的。不需要\n了。

热心网友 时间:2023-10-19 21:31

char name[10]="xiao mingg";你这很明显了,xiao mingg加一起一共10位,数组刚好能够存下,所以系统让你编译通过系统将你最后一个g也人为是一个字符来计算了

热心网友 时间:2023-10-19 21:31

你什么编译器 我VC6报错

error C2117: 'xiao mingg' : array bounds overflow

再一个,即使不报错 可以输出 那是因为你是用for循环控制输出次数的

因此只输出了10次 所以不会出现因为无结束符而输出后面的乱码

如果你用printf 以字符串格式输出的话 %s 那么 由于后面没有结束符

会多余输出很多 直到后面恰好是一个结束符才会完毕 溢出了··

热心网友 时间:2023-10-19 21:32

C语言中说字符串结尾应该是字符'\0',

char name[11]="xiao mingg";//编译器自动在末尾加‘\0’所以是11个字符。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
响雷是什么意思? 播放雷声是什么意思? 贷款放雷什么意思 医院放雷是什么意思? 放雷是什么意思? 人口数为842,590的地方算大城市吗 按规模城市可划分为哪些 函调离入党多远 写外调函离入党还要多少时间~! 电脑键盘向下箭头是哪个键电脑键盘各个按键功能是什么 c语言,怎样截取一个字符串的最后一个字符? c语言中怎样截取一个字符串的最后一个字符? C语言是不是字符串最后才会有\0,字符最后有吗? c语言从文件中读的字符存入数组中,数组最后一位是什么 C语言的字符串为什么以0作为它的结尾? C语言如何取字符串的最后一个,比如Lloyd2取最后一个字符 c语言,字符数组中最后一个字必须为‘\0’,为什么错? C语言字符串的最后一位 如果我变成一只小蚂蚁被你发现了,你会把我怎样(女生进) 我是一只蚂蚁作文600字开头用排比句 把自己想象成大自然的蚂蚁作文 情景作文 (“哎呀!我怎么成了蚂蚁?”) 谁有 如果有一天我变成了一只蚂蚁世界会是什么样子呢发挥想象写作文&#65532? 我是一只蚂蚁 作文 500字 把自己变成一只蚂蚁和一只蚂蚁对话作文 如果我变成了一只蚂蚁我会遇到怎样的危险? 你变形计,假如我变成了一只蚂蚁续写,被一阵风吹到哪里? 我把自己当成一只蚂蚁作文400字 盐酥鸡空气炸锅炸几分钟 我变成蚂蚁作文两百五十字 c语言中字符串的最后一位字符如果替换到前面是不是会带上'\0' C语言,输入1个字符串,然后显示出这个字符串的最后一个字符,我编的哪里错了呢 如何用c 指针指向一个字符串的最后一位 c语言中字符串,为什么最后要加个‘\0' ? c 字符串数字最后一位 加1 C语言怎么去掉字符串最后一个字符? c语言字符串结束符问题 c语言中如何判断一个字符串到结尾 用C语言求出某一个字符在某一字符串中最后出现的位置 关于淘宝客链接有效期的一些问题 我的电脑打不开LOFTER网页怎么办 为什么我用手机和电脑登录lofter网页刷新都好慢有时候根本刷不出来其他网站却很正常 lofter网页端如何把打赏金额提现? 为什么lofter找不到自己的其他主页? a股是代表哪些证券 证券股票是什么意思? 为什么我的iPhone11下载ps却不能用呢? Ps手机版怎么打不开 为什么下载的photoshop软件打不开? 我下载了ps软件为什么打不开