//給定一個字符串,把字符串內的字母轉換成該字母的下一個字母,a換成b,z換成a,Z換成A,
// 如aBf轉換成bCg,字符串內的其他字符不改變,給定函數,
//編寫函數 void Stringchang(const char*input,char*output) 其中input是輸入字符串,output是輸出字符串
#include
#include
void stringchang(const char*input,char*output)
{
for(int i=0;i<255;i++)
{
output[i]=input[i]+1;
switch(input[i])
{
case'z':output[i]='a';break;
case'Z':output[i]='A';break;
}
if(input[i]=='\0')
break;
}
}
void main()
{
char input[255];
char output[255];
gets(input);
stringchang(input,output);
puts(output);
}
為什麼輸出結果總是會亂碼?
修改後的代碼:
#include
void stringchang(const char*input,char*output)
{
for(int i=0;i<255&&input[i]!='\0';i++)
{
output[i]=input[i]+1;
switch(input[i])
{
case'z':output[i]='a';break;
case'Z':output[i]='A';break;
}
}
}
void main()
{
char input[255]={'\0'};
char output[255]={'\0'};
gets(input);
stringchang(input,output);
puts(output);
}