用字符指针处理字符串,输入一个字符串,对大写字母永远字母后面的第四个字母代替原字母,若遇到大写字母WXYZ,则分别用ABCD代替,其余字符不变。
#include<stdio.h>
int main()
{
char s[80],*p;
int n;
gets(s);
for(p=s;*p!='\0';p++)
{
if(*p>='A'&&*p<='Z')
if(*p>='W'&&*p<='Z')
{
n=*p-'W';
*p='A'+n;
}
else
*p=*p+4;
}
puts(s); //这一行参数为什么不能写成指针p
return 0;
}
因为处理完整个字符串时,指针p指向字符串s的末地址
你改成p什么都不会输出,因为puts函数是根据参数的地址往后输出