主题:字符串问题,共同研究的进
wangzining
[专家分:620] 发布于 2009-03-30 08:10:00
我想实现一个功能是当输入字符串不是OK是,连续的输入输出字符串,当输入OK时停止
这么写怎么不行?
char * str;
str=new char(100);
for(;str!="ok";)
{
str=gets(str);
}
谁能讲一下啊
回复列表 (共1个回复)
沙发
leo622 [专家分:0] 发布于 2009-04-14 21:18:00
char * str;
str=new char(100);
for(;str!="ok";)
{
str=gets(str);
}
这么写肯定不对啦!首先你new出来100个字节的空间,然后让str指向这块空间,这个是没有错的,问题出在当你第一次输入一串字符的时候是没有问题的.假设你第一次输入的不是"ok",假设你输入的是"no ok",然后第二次进入循环,这时候str指向"no ok"这个字符串的首地址,你再一次输入的时候会用你第二次输入的将"no ok"替换掉,等于strcpy了一次,你再输也是同样的结果;假设你第一次输入的是"ok",退出循环这个应该明白吧!
还有用new最后一定要delete一次 不然会造成内存泄漏的哦!
这种小程序用数组处理很简单 可以考虑下
我来回复