help me~
#include <stdio.h>#include <string.h>
#define MAX 1024//给MAX定义
int main()
{
char a;//定义一个字符数组a
char *p=a;//指针P指向数组a 不需要&因为字符串首地址就可以读取下去
//int b=0;//定义整数b为0
printf("请输入一个字符串");
fgets(a,MAX,stdin);//把键盘输入的字符串填入字符数组a中
while(*p++!='\0')//如果没有读取到 结束符就一直开启循环
{
printf("%c",*(p-1));//因为还有个结束符
}
return 0;
}
这里的p-1是因为什么出现的 是因为最后的结束符'\0'还是因为p++自增出现的 p++不是先打印后加一吗 这么还没人。。 如果不是 printf("%c",*(p-1)),而是 printf("%c",*p) ,那么,字符串的第一个字符将会被吃掉,从第二个字符开始输出 本帖最后由 xieglt 于 2020-10-15 14:53 编辑
// 循环判定条件里 p = p +1了,所以输出的时候 要从第一个字符输出的话要输出 *(p-1)
while(*p++!='\0')
{
printf("%c",*(p-1));
}
或者写成这样
while(*p!='\0')
{
printf("%c",*(p++));
}
页:
[1]