C语言编写程序,输入任意一个字符串,逆序输出。要求:使用指针和数组相结合实现。
时间: 2024-03-16 17:42:49 浏览: 69
好的,这是一个简单的 C 语言编程问题。以下是实现该功能的示例代码。
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100
int main()
{
char str[MAX_LENGTH + 1];
char *p, *q;
int len;
printf("请输入字符串:");
fgets(str, MAX_LENGTH + 1, stdin);
len = strlen(str);
p = str;
q = str + len - 1;
while (p < q) {
char tmp = *p;
*p = *q;
*q = tmp;
p++;
q--;
}
printf("逆序输出字符串:%s", str);
return 0;
}
```
代码解释:
- 定义了一个字符数组 `str` 来存储输入的字符串,使用 `fgets` 函数读取字符串,保证输入字符串的安全性;
- 定义两个指针 `p` 和 `q`,分别指向字符串的首位和末位;
- 使用 `while` 循环将 `p` 和 `q` 指向的字符交换,并向中间移动,直到 `p` 和 `q` 相遇;
- 输出逆序后的字符串。
注意事项:
- 在定义字符数组时,需要预留一个额外的字节来存储字符串的结束符 `\0`;
- 输入的字符串可能包含回车符,需要在读取字符串后去掉;
- 在输出字符串时,不需要换行符。
阅读全文