一维字符数组:字符串逆序。 例如:输入字符串"abcdefg",则应输出"gfedcba"。 函数接口定义: void fun(char str[ ],int n) ; #define N 30 #include "stdio.h" #include "string.h" int main() { char str[N]; int s; gets(str); s=fun(str); puts(str); printf(",%d", s); return 0; } /* 答题框里的子函数的设计被嵌入这里 */
时间: 2025-03-29 08:03:18 浏览: 40
### 反转字符串的C语言函数
以下是实现反转字符串功能的 `void fun(char str[], int n)` 函数代码:
```c
#include <stdio.h>
#include <string.h>
// 定义反转字符串的函数
void fun(char str[], int n) {
int start = 0;
int end = strlen(str) - 1; // 获取字符串长度并定位到最后一个字符位置
while (start < end && start < n && end >= 0) { // 控制条件防止越界访问
char temp = str[start];
str[start] = str[end]; // 交换首尾字符
str[end] = temp;
start++;
end--; // 移动指针继续处理下一个字符对
}
}
int main() {
char s[100];
int length;
printf("请输入一个字符串:");
fgets(s, sizeof(s), stdin);
s[strcspn(s, "\n")] = '\0'; // 去除输入中的换行符
length = strlen(s);
printf("原始字符串为:%s\n", s);
fun(s, length); // 调用反转函数
printf("反转后的字符串为:%s\n", s);
return 0;
}
```
上述代码实现了字符串的逆序操作。通过定义两个索引变量分别指向字符串的第一个和最后一个有效字符,逐步向中间靠拢,在每次循环中完成一次字符互换[^1]。
#### 关键点说明:
- 使用了标准库 `<string.h>` 中的 `strlen` 来获取字符串的实际长度。
- 循环终止条件考虑到了边界情况,即当起始索引大于等于结束索引时停止交换。
- 输入部分采用了 `fgets` 并手动去除可能存在的换行符 `\n`,以确保程序兼容多平台下的终端输入行为[^2]。
---
阅读全文
相关推荐















