请C++高手帮忙解答:关于用string类的字符串处理字符输入的问题 谢谢!

如果想使用string类处理字符串输入,先定义了string*name,在主函数中可以直接使用语句cin>>name;吗?这与用char*name;然后再为name开辟空... 如果想使用string类处理字符串输入,先定义了string *name,在主函数中可以直接使用语句cin>>name;吗?这与用char *name;然后再为name开辟空间name=new char[7],再cin>>name的做法相比,此种做法也需要另写语句为string开辟空间吗?我很疑惑,希望你们能帮我解答一下!
谢谢!
如果不能这样处理,那么应该怎样做才能用string类来处理从键盘上直接输入未知长度的字符串呢?
谢谢!
展开
 我来答
涛褪荒芜
2011-05-06 · 超过31用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:81万
展开全部

请问下你知道string是STD里面的类,而不是基本数据类型吗?

我先建议你先看一下string类的说明。如果使用string类来获得输入、输出。你可以直接这样做:

如图

空间开辟是一定要的,不然怎么存储字符串?只是这些都是类string帮你封装好了,而且也做了cin>>和cout<<的运算符重载。所以你可以直接使用,不比使用指针和引用,而且这样也是编译不通过的。

字符串长度的问题,类内也做了处理。相信你不会一次输入N个字符的。所以你不用担心长度问题.

583735151
2011-05-06 · TA获得超过449个赞
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:229万
展开全部
string在C++中是一个预定义的动态扩展内存的字符数组类,用它时,只要分配实体后,直接用就行了,不必考虑越界或内存不足的问题。
上面你定义一个string*指针 name,这样可以,但他需有所指,可以这样string alo;
name=&alo; 之后cin >> name;就会对了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4aa0cbadf
2011-05-06 · TA获得超过299个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:359万
展开全部
不用。另外不要声明string *name,直接string name就好了,cin>>name; cout<<name<<endl;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IntoCode
2011-05-06 · TA获得超过186个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:61.8万
展开全部
如果string * name,不管new不new空间,在cin>>name除都会有下面的错误
error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *' (or there is no acceptable co
nversion)
这是我用VC 6.0得的结果,希望对你有帮助,我想本来用string声明一个变量,它的大小就没有限制,那么声明为指针型的又为何呢?
追问
请问用string声明一个变量,大小没有限制,那么,你知道其中的原理吗?是键盘输入一个字符后,计算机马上为该字符开辟一个字符空间吗,这些空间是连续的吗,还是其它什么的?如果是这样,那么要是内存不够会出现什么情况呢,会出现编译错误吗?
谢谢!
追答
我不知道其中的原理,你可以上网查找或在VC里找到他的库函数原函数代码看看,开辟的空间应该是连续的,应该不会出现编译错误吧,没有输入的时候他也不知道你输入的东西有多长,内存空间够不够啊,但我个人认为在输入字符串的时候内存空间不够导致程序停止工作的可能性比较小,因为即便还剩1M内存,你还能输入1024*1024个字符吧,如果真是数据量庞大他可能会存到辅存中,这我就不太清楚了,你可以查阅一下相关书籍,实在帮不上你了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
biaojing30
2011-05-06 · TA获得超过262个赞
知道答主
回答量:649
采纳率:100%
帮助的人:0
展开全部
这你不用找人帮你写了;干脆把STL的string类代码copy 过去,比一般人写的都NB. #include
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式