C语言,利用指针编写程序:把从键盘输入的字符串逆序存放并输出

如题所述

以下是C语言程序,使用指针将键盘输入的字符串逆序存放,并输出结果:

```c
#include <stdio.h>
#include <string.h>

int main() {
char str[100], temp;
int len, i;
char *p1, *p2;

printf("请输入一个字符串:");
scanf("%s", str);

len = strlen(str);
p1 = str;
p2 = str + len - 1; // 指向字符串最后一个字符

for (i = 0; i < len/2; i++) {
temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}

printf("逆序存放后的字符串为:%s", str);

return 0;
}
```

程序先从键盘输入一个字符串,然后获取字符串的长度和指向字符串首尾的指针。接着,使用指针交换相应位置上的字符,完成字符串逆序存放。最后输出逆序存放后的字符串。

注意,字符串的长度可能为奇数或偶数,因此在for循环中应该只交换字符串长度除以2个字符即可。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-08-17
#include <stdio.h>
#include <string.h>
void reverse(char* str)
{
char* p = str + strlen(str)-1;
char temp;
while(str<p)
temp=*p, *p--=*str, *str++=temp;
}
void main()
{
char str[1000];
gets(str);
reverse(str);
printf("%s\n", str);
}本回答被提问者采纳
相似回答