标题:难道老谭错了?(一个关于字符串与指针的问题)
只看楼主
dainichuhai
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2005-10-14
 问题点数:0 回复次数:6 
难道老谭错了?(一个关于字符串与指针的问题)

main()
{ char *p,c[4];
p=c;
scanf("%s",p);
printf("%s",c);
getch();
}
我输入abcdef输出abcdef;为什么?偶觉得c的长度已经限制输出应该是abcd才是啊(这也是我的本意---依葫芦画瓢:老潭的书第二版就是这么要求的page364 第二版的)!可为什么得不到我想要的答案泥?
各位帮帮忙,留下点解释。谢谢了。

搜索更多相关主题的帖子: 指针 字符 main char 
2007-06-26 02:41
zm1573
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-6-19
得分:0 
其实呢,字符串是通过首地址来进行访问和读取操作的.尽管它定义了字符数组的长度,但是任何字符数组都是当作字符串来处理的,而字符串的结束符是由输入过程中决定的.所以,就会出现这种情况了.

2007-06-26 08:22
wldu
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-5-30
得分:0 
同意楼上

可以用fgets 来读取你需要的长度

[此贴子已经被作者于2007-6-26 10:35:19编辑过]

2007-06-26 10:34
c4c4
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-6-1
得分:0 
main()
{ char *p,c[4];
p=c;
scanf("%4s",p);
printf("%s",c);
getch();
}
这样就可以控制它的输出了啊
2007-06-26 11:02
wldu
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-5-30
得分:0 
回复:(c4c4)main(){ char *p,c[4]; p=c; sca...
楼上的方法在VC下面得不到正确的结果
2007-06-26 16:33
judelinux
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-6-26
得分:0 

我也正困惑这个问题很久了

2007-06-26 18:11
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
得分:0 
还可以通过设置一个变量来控制``读取的字字符个数

main()
{ char *p,c[4];
p=c;
int i;
for (i=1; i<=4; i++,p++)
scanf("1s",p);
printf("%s",c);
getch();
}

这样可以吗?

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-06-26 18:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-150310-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.758479 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved