求大神帮忙看一下这个c++程序 新手刚学 为什么会崩溃

#include<iostream>

#include<string>


using namespace std;


string  padLeft(string s, int n)

{

    string t;

    int m=s.length();

    int k=0;

    if(m>n)

    {

        return s;

    }

    else

    {

        for(int i=0;i<n;i++)

        {

            if(i<(n-m))

            {

                t[i]=char(32);

            }

            else

            {

                t[i]=s[k++];

            }

        }

        return t;

    }

}


string padLeft(string s,int n,char a)

{

    string t;

    int m=s.length();

    int k=0;

    if(m>n)

    {

        return s;

    }

    else

    {

        for(int i=0;i<n;i++)

        {

            if(i<(n-m))

            {

                t[i]=a;

            }

            else

            {

                t[i]=s[k++];

            }

        }

        return t;

    }

}


string padRight(string s, int n)

{

    string t;

    int m=s.length();

    if(m>n)

    {

        return s;

    }

    else

    {

        for(int i=0;i<n;i++)

        {

            if(i<m)

            {

                t[i]=s[i];

            }

            else

            {

                t[i]=' ';

            }

        }

        return t;

    }

}


string padRight(string s, int n,char a)

{

    string t;

    int m=s.length();

    if(m>n)

    {

        return s;

    }

    else

    {

        for(int i=0;i<n;i++)

        {

            if(i<m)

            {

                t[i]=s[i];

            }

            else

            {

                t[i]=a;

            }

        }

        return t;

    }

}


string cpy(string s)

{

    string t;

    int m=s.length();

    for(int i=0;i<m;i++)

    {

        t[i]=s[i];

    }

    return t;

}


string cpy(string s,int n)

{

    string t;

    int m=s.length();

    if(n<0||n>=m)

    {

        return t;

    }

    else

    {

        for(int i=n;i<m;i++)

        {

            t[i]=s[n++];

        }

        return t;

    }

}


string cpy(string s,int m,int n)

{

    string t;

    int l=s.length();

    if((m<0||m>=l)||(n<0||n>=l)||(m>n))

    {

        return t;

    }

    else if(m==n)

    {

        t[0]=s[m];

        return t;

    }

    else

    {

        for(int i=m,j=0;i<m+n;i++,j++)

        {

            t[j]=s[i];

        }

        return t;

    }

}


string remove(string s,char a)

{

    string t;

    int m=s.length();

    int j=0;

    for(int i=0;i<m;i++)

    {

        if(s[i]!=a)

        {

            t[j++]=s[i];

        }

    }

    return t;

}


string remove(string s,int n)

{

    string t;

    int m=s.length();

    int j=0;

    if(n<0||n>=m)

    {

        return t;

    }

    else

    {

        for(int i=0;i<m;i++)

        {

            if(i!=n)

            {

                t[j++]=s[i];

            }

        }

        return t;

    }

}


string remove(string s,int m,int n)

{

    string t;

    int l=s.length();

    int j=0;

    if((m<0||m>=l)||(n<0||n>=l)||(m>n))

    {

        return t;

    }

    else

    {

        for(int i=0;i<l;i++)

        {

            if(i<m||i>n)

            {

                t[j++]=s[i];

            }

        }

        return t;

    }

}


int main()

{


    int num, length, index, startIndex, endIndex;


    char padding, delChar;


    string src, dest;


    while(cin >> num)


    {

        switch(num)


        {


        case 11:


        cin >> src >> length;


        cout << padLeft(src, length) << endl;


        break;


        case 12:


        cin >> src >> length >> padding;


        cout << padLeft(src, length, padding) << endl;


        break;


        case 21:


        cin >> src >> length;


        cout << padRight(src, length) << endl;


        break;


        case 22:


        cin >> src >> length >> padding;


        cout << padRight(src, length, padding) << endl;


        break;


        case 31:


        cin >> src;


        cout << cpy(src) << endl;


        break;


        case 32:


        cin >> src >> startIndex;


        cout << cpy(src, startIndex) << endl;


        break;


        case 33:


        cin >> src >> startIndex >> endIndex;


        cout << cpy(src, startIndex, endIndex) << endl;


        break;


        case 41:


        cin >> src >> delChar;


        cout << remove(src, delChar) << endl;


        break;


        case 42:


        cin >> src >> index;


        cout << remove(src, index) << endl;


        break;


        case 43:


        cin >> src >> startIndex >> endIndex;


        cout << remove(src, startIndex, endIndex) << endl;


        break;


        }


    }


    return 0;


}



ymy9
浏览 1320回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP