vc6.0编写的一个小程序的问题

题目是输入1个4位数字,输出这4个数字但每两个数字间空一个空格。这个是书上的答案,但我有些不明白。一是既然是4位数,那么i=strlen(str)就是4了,str[2*i... 题目是输入1个4位数字,输出这4个数字但每两个数字间空一个空格。

这个是书上的答案,但我有些不明白。一是既然是4位数,那么i=strlen(str)就是4了, str[2*i]=str[i]也就是把str[4]赋给str[8]。但是1 9 9 0总共才7个字符啊,哪来的第八个字符?还有就是为什么最后输出的时候不用手动加'\0'?请高人指导,希望能尽量详细点。
展开
 我来答
ljt502032774
推荐于2016-04-09 · 超过35用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:59.4万
展开全部
输入1990(enter)
后str[80]中存的字符是'1''9''9''0''/0'
strlen(str) --> 4 == i;
(str[2*i] = str[i] ) --> (str[8] = str[4]) --> ('NULL' = '/0')
(str[2*i - 1] = ' ')--> (str[7] = ' ')
i -- ;// i == 3
(str[2*i] = str[i] ) --> (str[6] = str[3]) --> ('NULL' = '0')
(str[2*i - 1] = ' ')--> (str[5] = ' ')
i -- ;// i == 2
(str[2*i] = str[i] ) --> (str[4] = str[2]) --> ('NULL' = '9')
(str[2*i - 1] = ' ')--> (str[3] = ' ')
i -- ;// i == 1
(str[2*i] = str[i] ) --> (str[2] = str[1]) --> ('NULL' = '9')
(str[2*i - 1] = ' ')--> (str[1] = ' ')
i -- ;//i == 0
For循环退出
str[1]本来就存储的 '1'
所以就是这样了...
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式