我的代码有问题。我已经阅读了一些有关它的问题但我在代码中找不到问题。
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.提前感谢!
答案 0 :(得分:0)
使用char []保存输出或使用output = output + string(1,char)将字符附加到输出字符串。
正如Luchian建议的那样,您需要非常小心地处理char [],这也需要对代码进行一些更改。请改用字符串。