标题:取子串的问题:String Substr(int index,int count),但是其中的2个错误不会 ...
取消只看楼主
pjzpjz19880
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-6-6
结帖率:66.67%
已结贴  问题点数:4 回复次数:1 
取子串的问题:String Substr(int index,int count),但是其中的2个错误不会改,大家帮帮忙!

取子串:
#include <iostream>
#include <string>
using namespace std;


class String
{
private:
    int stringlen;
    char  *s;
public:
    String Substr(int index,int count);
};
 
String  String ::Substr(int index,int count)
{
    //从i到串尾的字符个数
    int leftlen=stringlen-index-1;
    int i,tlen;

    //建立子串
    string t;
    char *p,*q;

    //若i 越界,返回空串
    //if(i>leftlen)
//    return t;

    //若n大于剩下的字符,则只用剩下的字符
    if(count>=leftlen)
        count=leftlen;

    //删除定义t时产生的null串
      delete[] t;
        t=new char[count+1];
        if (t==NULL)
        {cout<<"Error"<<endl;
        //exit(1);
        }
        for(i=0,p=t,q=&s[index];i<count;i++)
            *p++=*q++;
            *p=0;
            tlen=count+1;
            return t;
   
}

int main()
{
    String string1("ABCED");
    String string2=string1.Substr(2,4);
    //cout<<string2<<endl;
    return 0;
}

       这是编译时 其中的错误:
f:\my project\my docment\my doucment.cpp(37) : error C2440: 'delete' : cannot convert from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to ''
        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
f:\my project\my docment\my doucment.cpp(37) : fatal error C1903: unable to recover from previous error(s); stopping compilation
执行 cl.exe 时出错.
搜索更多相关主题的帖子: int count String Substr index 
2010-06-16 20:36
pjzpjz19880
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-6-6
得分:0 
请你帮我改改吧,我改过很多次了,每次是越改程序运行错的越多,拜托啊!
2010-06-16 21:51



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




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

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