用C语言编写一个函数,完成将一个字符串中的字符逆序输出,即最后一个先输出,第1个最后输出,并编写主函数进行测试。 (1)编写逆序函数,返回逆序的字符串。 (2)编写主函数,进行字符串的输入,调用逆序函数,完成字符串的输出。
时间: 2024-12-22 08:15:00 浏览: 30
你可以按照以下步骤来实现这个功能:
1. 编写一个名为`reverse_string`的函数,该函数接受一个字符串作为参数,通过交换首尾字符的方式实现字符串逆序。函数定义如下[^1]:
```c
// 反序字符串x并返回逆序后的字符串
char* reverse_string(char *x) {
int len = strlen(x);
if (len == 0) return x; // 如果字符串为空,直接返回
char* reversed = malloc(len + 1); // 分配空间存储逆序后的字符串
if (!reversed) { // 检查内存分配是否成功
printf("Memory allocation failed.\n");
return NULL;
}
int i = 0, j = len - 1; // 定义两个指针,从两端开始交换字符
while (i < j) {
reversed[i] = x[j];
reversed[j] = x[i];
i++;
j--;
}
reversed[len] = '\0'; // 添加字符串结束符
return reversed;
}
```
2. 在主函数`main()`中,读取用户输入的字符串,调用`reverse_string`函数并输出结果:
```c
main() {
char input[50];
printf("Enter a string (up to 50 characters): ");
fgets(input, sizeof(input), stdin); // 注意这里要移除末尾的换行符
input[strcspn(input, "\n")] = '\0'; // 移除换行符
char* reversed_str = reverse_string(input);
if (reversed_str != NULL) {
printf("Reversed string: %s\n", reversed_str);
free(reversed_str); // 释放内存
} else {
printf("Failed to reverse the string.\n");
}
}
```
阅读全文