首页
社区
课程
招聘
[求助]C语言问题
发表于: 2007-6-23 10:52 4709

[求助]C语言问题

2007-6-23 10:52
4709
这个程序是从终端读取含有一系列字的文本行,然后显示出来,我知道字符串的储存需要终止空字符 "\0"。
我怎么觉得那句应该改为C=C+1

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
//你自己计算一下就明白了
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
        char line[81], character;
        int c;
        c = 0;
        printf("enter text.\n");
        do
        {
                 character = getchar();  //假如输入"12345678↙"(↙代替回车的意思)
                 line[c] = character;
                 c++;
        }while(character!='\n');
        printf("c的值是多少:c = : %d\n",c);  // 这里c的值等于9,因为line串包含了回车字符的原因
        c = c - 1;
        line[c] = '\0';
                //因为前面c减去了1,所以这里的line字符长度就是8(回车字符被前面的操作去掉了),如果上面没有将c减去1,那么line字符长度就是9了(因为包含了回车字符),
        printf("line的字符长度是多少:lineLen: %d\n",strlen(line));
        printf("%s\n",line);
        system("pause");
}

_____________________
|line|1|2|3|4|5|6|7|8|\n|x |  line字符长度==9,(x为未知数)
|____________________|
| c   |0|1|2|3|4|5|6|7|8 |9 |  c也是等于9,不过c==9时是指向字符串的x数据的,如果不减去
|____________________|  1,那么line字符串就会包含'\n'回车字符,减去1的话,回车字               符就会被替换掉。
2007-6-23 12:28
0
雪    币: 232
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
解释得很清楚
VERY THX
2007-6-23 13:10
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
"VERY THX"
"非常感谢"

有这种说法吗?
典型的中式英语呵呵~~~
2007-6-23 20:25
0
雪    币: 232
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
那就MANY THX
2007-6-24 10:52
0
游客
登录 | 注册 方可回帖
返回
//