字符串编码,字母用后面的第4个字母替换

时间:2022-01-11 08:57:37
char smallater[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char larglater[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};

void convertstr(char*str)
{

int i=0;
int j;
int k;
while (str[i])
{
if (str[i]>='a'&&str[i]<='z')
{
for(j=0;j<26;j++)
{
if (str[i]==smallater[j])
{
                                              k=(j+4)%26;

str[i]=smallater[k];//问题在这,但是这句代码怎么不知道错在哪
break;
}
}


else if (str[i]>='A'&&str[i]<='Z')
{
for(j=0;j<26;j++)
{
if (str[i]==larglater[j])
{
                                              k=(j+4)%26;
str[i]=larglater[k];
break;
}
}

}

             i++;
}
 
}

void main()
{
char *str="as1234ffff,./dffg";
convertstr(str);
printf("%s",str);
}


高手给点拨一下吧!!

5 个解决方案

#1


调试,下断跟踪

#2


调试了,就那一句运行不下去,我不知道这个错误是怎么回事

#3


我觉得str[i]=smallater[k];应该没错啊,不知道怎么解释

#4


char *str="as1234ffff,./dffg";

 str 是常量,修改属于未定义行为

char str[]="as1234ffff,./dffg";

#5


好的,谢谢,明白了,

#1


调试,下断跟踪

#2


调试了,就那一句运行不下去,我不知道这个错误是怎么回事

#3


我觉得str[i]=smallater[k];应该没错啊,不知道怎么解释

#4


char *str="as1234ffff,./dffg";

 str 是常量,修改属于未定义行为

char str[]="as1234ffff,./dffg";

#5


好的,谢谢,明白了,