将字符串中的所有字母都替换成该字母的下一个字母问题求教
#include <iostream>
using namespace std;
#include <ctype.h>
#include <stdio.h>
#include <string.h>
void func(char *p);
void main()
{
char str1[20];
printf("enter:");
gets(str1);
func(str1);
puts(str1);
}
void func(char *p)
{
char ch;
while(*p)
{ ch=*p;
if(isalpha(*p)&&(*p!='z')&&(*p!='Z'))
*p=ch+1;
else if(*p='z')
*p='a';
else if(*p='Z')
*p='A';
p++;
}
}
为什么我输入大写Z是返回的却是小写的a呢?不论输入大写还是小写的z都会进入第一个else if啊,求指教。。。
[解决办法]
*p == 'a'
[解决办法]
虽然我一直觉得像'Z'== *p这样子的写法很难看,但是的确可以减少很多不必要的失误。
[解决办法]
else if中都少个=号