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";
str 是常量,修改属于未定义行为
char str[]="as1234ffff,./dffg";
#5
好的,谢谢,明白了,
#1
调试,下断跟踪
#2
调试了,就那一句运行不下去,我不知道这个错误是怎么回事
#3
我觉得str[i]=smallater[k];应该没错啊,不知道怎么解释
#4
char *str="as1234ffff,./dffg";
str 是常量,修改属于未定义行为
char str[]="as1234ffff,./dffg";
str 是常量,修改属于未定义行为
char str[]="as1234ffff,./dffg";
#5
好的,谢谢,明白了,