| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 705 人关注过本帖
标题:一个字符串问题,请高手指教
只看楼主 加入收藏
偶系动感超人
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-8-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
一个字符串问题,请高手指教
char string[10];
char str[10];

int i;

for(i=0;i <10;i++)
{
str[i]= i;
}
strcpy(string,str);

大家帮忙看看这个怎么错了,面试题上提示说:str的内容可能会改变,要考虑局部变量的分配.是什么意思呢?
搜索更多相关主题的帖子: 字符串 
2009-08-25 00:03
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:2 
str定议的是字符数组,赋的值是1~9,并不是字符的'1'~'9',
这样是可行,但结果没意义,你试着在程序后面加个循环输出pritnf("%c ",……);
看看里面是什么。

努力—前进—变老—退休—入土
2009-08-25 00:25
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:2 
回复 楼主 偶系动感超人

        strcpy 是以字符串的 '\0' 为标记的,你对字符串赋值时没考虑到结束标记,所以复制出的字符串有可能是垃圾数据。如果是字符数组,也可以考虑用 strncpy 来复制。
        以上谨是一家之言,谨作参考。
2009-08-25 02:04
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:2 
2,3楼说的都有道理。。。
只是没明白,他说的要考虑局部变量的分配是什么意思。。。
2009-08-25 02:07
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:2 
难道仅是数组越界的问题哇?
和i的使用没关系吗

[ 本帖最后由 你们都要疼我哦 于 2009-8-25 19:21 编辑 ]

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2009-08-25 11:34
atom_09
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:92
专家分:141
注 册:2009-8-24
收藏
得分:2 
楼上的似乎都不是高手 5555555555555555555555555
2009-08-25 14:11
DMS
Rank: 2
等 级:论坛游民
帖 子:54
专家分:48
注 册:2009-6-28
收藏
得分:2 
看看第一个赋值~~<br>是0啊~~<br>"\0"的ASC码是什么?<br>加上23楼的就完毕了

[ 本帖最后由 DMS 于 2009-8-25 17:16 编辑 ]
2009-08-25 17:15
jetlif
Rank: 2
等 级:论坛游民
帖 子:7
专家分:28
注 册:2009-8-19
收藏
得分:2 
定义的两个字符数组,虽然长度看起来是满足的,而且通过for循环对str数组进行赋值。但是你要知道,字符串数组在C语言中会自动在最后加上"\o"以表示字符串结束,所以通过strcpy复制数据时,“\0”也是要复制过去,因此string数组的长度显然不够,或者说str在赋值时不能到i=9。提示要考虑局部变量的分配的原因即在此。<br><br>[<i>&nbsp;本帖最后由&nbsp;jetlif&nbsp;于&nbsp;2009-8-25&nbsp;18:03&nbsp;编辑&nbsp;</i>]

[ 本帖最后由 jetlif 于 2009-8-25 18:04 编辑 ]
2009-08-25 17:35
快速回复:一个字符串问题,请高手指教
数据加载中...
 
   



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

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