运用C语言中的数组编写一个函数,完成将一个字符串中的字符逆序输出,即最后一个先输出,第1个最后输出,并编写主函数进行测试。 (1)编写逆序函数,返回逆序的字符串。不用指针
时间: 2024-12-21 20:23:34 浏览: 4
在C语言中,你可以通过遍历数组并逐个添加到新的字符串中来实现字符串的逆序。这里是一个简单的示例,展示了如何编写一个不使用指针的函数来逆序字符串:
```c
#include <stdio.h>
#include <string.h>
// 函数定义:接受一个字符数组作为参数,逆序并返回新的字符串
char* reverse_string(char str[]) {
char reversed[101]; // 用于存储逆序后的字符串,假设输入最多100个字符
int len = strlen(str);
int i;
// 从原字符串的末尾开始,将每个字符追加到reversed数组
for (i = len - 1; i >= 0; i--) {
reversed[i] = str[i];
}
reversed[len] = '\0'; // 添加终止符
return reversed;
}
// 主函数测试
int main() {
char input[10];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 注意去掉可能存在的换行符
input[strcspn(input, "\n")] = '\0';
char* reversed = reverse_string(input);
printf("Reversed string: %s\n", reversed);
free(reversed); // 释放动态分配的内存
return 0;
}
```
在这个例子中,`reverse_string`函数接受一个字符串数组作为参数,通过一个for循环逆序字符串并将结果存储在`reversed`数组中。主函数中,我们读取用户的输入,调用`reverse_string`函数得到逆序的字符串,然后打印出来。
注意,由于C标准库并没有提供直接处理字符串逆序的函数,这个方法比较常见且简单。另外,`fgets`用于防止溢出,因为它会自动移除多余的换行符。在实际应用中,记得要对动态分配的内存进行管理,避免内存泄漏。
阅读全文