| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 780 人关注过本帖
标题:关于字符串初始化问题
只看楼主 加入收藏
xieyuanchang
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-5
收藏
 问题点数:0 回复次数:4 
关于字符串初始化问题

int main()
{//问题1 这样初始化合法么?我在vc 6.0上编译报错,这个方法是在 c程序设计谭浩强著
//的 p141 所描述的初始化方式
char c[6]={'i','','a','m','','a'};
cout<<c;


//问题2 输入的字符可以超过新分配的空间么,cout函数如何判断字符串是否结束?
char *s;
s=new char[6];
cin>>s;
cout<<s;
delete s;
return 0;
}

搜索更多相关主题的帖子: 字符 
2007-08-05 19:33
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
以下是引用xieyuanchang在2007-8-5 19:33:51的发言:

int main()
{//问题1 这样初始化合法么?我在vc 6.0上编译报错,这个方法是在 c程序设计谭浩强著
//的 p141 所描述的初始化方式
char c[6]={'i','','a','m','','a'}; //这个地方,''里面最少要有个空格吧,' '
//而且,结束符'\0'也要有的吧
cout<<c;


//问题2 输入的字符可以超过新分配的空间么,cout函数如何判断字符串是否结束?
//答:不行,否则会出错
char *s;
s=new char[6];
cin>>s;
cout<<s;
delete s;
return 0;
}


坚决不跟用TC的人打交道!
2007-08-06 02:12
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 

如果是仅仅是字符数组,那么合法,但你的程序将它看做字符串,因此不合法(因为少了'\0')

输入字符可以超过新分配空间,不过可能会引起数据重叠等问题,导致内存数据错误,不建议使用.


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-06 08:57
xieyuanchang
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-5
收藏
得分:0 

谢谢呀,我明白了


2007-08-06 14:32
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:0 
cout&lt;&lt;c;要std::cout!!

要练习算法就来http:///!!有挑战哦!!
2007-08-06 14:51
快速回复:关于字符串初始化问题
数据加载中...
 
   



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

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