字符串串联o范围

String substring out o range

本文关键字:范围 字符串      更新时间:2023-10-16

我对此代码有问题。我已经阅读了一些问题,但是我在代码中找不到问题。

string Mansfildenc(string input){
    string output;
    char tab[5][5] = {
        {'a', 'b', 'c', 'd', 'e'},
        {'f', 'g', 'h', 'i', 'k'},
        {'l', 'm', 'n', 'o', 'p'},
        {'q', 'r', 's', 't', 'u'},
        {'v', 'w', 'x', 'y', 'z'}};
    char tab2[5]={'A','E','I','O','U'};
    int j=0,i;
    char c;
    int gasit;
    int lin,col;
    for(i=0;i<input.length();i++){
        c=tolower(input[i]);
        if(isalpha(c)){
            if(c=='j'){
                output[j]='E';
                j++;
                output[j]='O';
                j++;
            }
            else{
                gasit=0;
                for(lin=0;lin<5;lin++){
                    for(col=0;col<5;col++)
                        if(tab[lin][col]==c){
                            gasit=1;
                            break;
                        }
                        if(gasit==1) break;
                }
                output[j]=tab2[lin];
                j++;
                output[j]=tab2[col];
                j++;
            }
        }
        else{
            output[j]=c;
            j++;
        }
    }
    return output;
}

如果您可以帮助我。我正在与Visual Studio 2010合作。预先感谢!

使用char []保持输出或使用输出=输出 字符串 字符串(1,char)将您的字符附加到输出字符串上。

正如Luchian建议的那样,您需要非常仔细地处理char [],这也需要对您的代码进行一些更改。改用字符串。