输入一串字符,按相反次序输出其中的所有字符利用指针
时间: 2023-03-24 21:05:03 浏览: 189
可以使用指针来实现字符串的反转输出。具体实现方法如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int len = strlen(str);
char *p = str, *q = str + len - 1;
while (p < q) {
char temp = *p;
*p++ = *q;
*q-- = temp;
}
}
int main() {
char str[100];
printf("请输入一串字符:");
scanf("%s", str);
reverse(str);
printf("反转后的字符串为:%s\n", str);
return ;
}
```
以上代码中,reverse 函数使用了两个指针 p 和 q,分别指向字符串的首尾位置,通过不断交换两个指针所指向的字符,实现了字符串的反转。最后在主函数中调用 reverse 函数即可。
相关问题
编写C语言程序,定义字符指针变量p,实现输入一个字符串,按相反次序输出其中的所有字符。
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
char *p;
printf("请输入一个字符串:");
gets(str); // 推荐使用fgets(str, 100, stdin)替代
p = str + strlen(str) - 1; // 指向字符串最后一个字符
printf("相反次序输出:");
while (p >= str) {
printf("%c", *p);
p--;
}
printf("\n");
return 0;
}
```
这里使用了指针来实现字符串的反转输出。首先,定义一个字符数组 `str`,用于存储输入的字符串。然后定义一个字符指针 `p`,指向字符串 `str` 的最后一个字符。接着,通过 `while` 循环遍历字符串,从最后一个字符开始输出,直到遍历到字符串的第一个字符。在循环内部,使用 `printf` 函数输出指针 `p` 指向的字符,然后将指针 `p` 向前移动一个位置,以便输出下一个字符。最后,输出一个换行符,结束程序的执行。
将串r所有字符按照相反的次序仍存放在r中
很高兴回答你的问题。这是一个字符串反转的问题,可以使用双指针或栈来解决。如果你使用双指针,可以让一个指针指向字符串的第一个字符,另一个指针指向字符串的最后一个字符,然后交换它们的值,直到两个指针相遇为止。如果你使用栈,可以将字符串中的每个字符入栈,然后依次出栈,即可得到反转后的字符串。希望我的回答能够帮助到你!