编写C语言程序,定义字符指针变量p,实现输入一个字符串,按相反次序输出其中的所有字符。
时间: 2023-06-18 13:03:04 浏览: 75
```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` 向前移动一个位置,以便输出下一个字符。最后,输出一个换行符,结束程序的执行。
相关问题
编写程序,输入一个字符串,按照相反次序输出其中所有字符
下面是一个C语言程序示例,用于输入一个字符串,然后按照相反的顺序输出其中的所有字符:
```c
#include <stdio.h>
#include <string.h>
void reversePrint(char *str) {
int length = strlen(str);
for (int i = length - 1; i >= 0; i--) {
printf("%c", str[i]);
}
printf("\n");
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
// 去除换行符
if (str[strlen(str) - 1] == '\n') {
str[strlen(str) - 1] = '\0';
}
printf("按相反次序输出结果:");
reversePrint(str);
return 0;
}
```
程序中的`reversePrint`函数接受一个字符串作为参数,使用循环从字符串末尾开始逐个输出字符。在`main`函数中,首先使用`fgets`函数从标准输入获取字符串,并去除换行符。然后调用`reversePrint`函数输出结果。
运行程序后,输入一个字符串,程序将按照相反的顺序输出其中的所有字符。
编写c语言,输入任意一个字符串,逆序输出,使用指针和数组结合实现
好的,以下是一个满足您需求的C语言代码示例:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int len = strlen(str);
char temp;
for (int i = 0; i < len / 2; i++) {
temp = *(str + i);
*(str + i) = *(str + len - i - 1);
*(str + len - i - 1) = temp;
}
}
int main() {
char str[100];
printf("请输入一个字符串:\n");
scanf("%s", str);
reverse(str);
printf("逆序输出:%s\n", str);
return 0;
}
```
程序中的 `reverse` 函数使用指针 `*str` 进行参数传递,其中 `*str` 代表输入的字符串指针。函数使用数组的方式访问字符串中的每一个字符,并通过指针操作将其逆序排列。在主函数中,先输入一个字符串并存储在 `str` 中,然后调用 `reverse` 函数,将字符串逆序排列。最后输出逆序排列后的字符串。