*请补充函数fun(char s[]),该函数的功能是:把字符串中的内容逆置。 例如,字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: */ #include <string.h> #include <stdio.h> #define N 81 void fun(char s[]) { int i,n=strlen(s)-1; char t; /**********FILL**********/ for(i=0;i<n;i++, [1] ) { t=s[i]; /**********FILL**********/ [2] ; /**********FILL**********/ [3] ; } } int main() { char a[N]; printf("Enter a string:"); gets(a); printf("The original string is:"); puts(a); fun(a); printf("\n"); printf("The string after modified:"); puts(a); return 0; }
时间: 2023-07-05 18:35:33 浏览: 133
请用下面的代码替换函数fun中的注释语句:
```c
for (i = 0; i < n / 2; i++)
{
t = s[i];
s[i] = s[n - i];
s[n - i] = t;
}
```
这段代码使用双指针法,将字符串s中的内容逆置。具体步骤是:从字符串s的首尾两端开始,使用一个循环,每次交换两个指针所指向的元素,直到两个指针相遇,即完成了字符串s的逆置。
相关问题
请编一个函数fun(char *s),函数的功能是把s所指字符串中的内容逆置。 例如:字符串中原有的字符串为:abcdefg, 则调用该函数后, 串中的内容为:gfedcba。
```c
void fun(char *s) {
int len = strlen(s);
for (int i = 0; i < len / 2; i++) {
char temp = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = temp;
}
}
```
请编写一个函数fun(char *s), 函数的功能是把字符串 的内容逆置。例如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba. 注意:源程序存在文件prog.中。 请勿改动主函数main 和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
下面是对应的函数fun的代码实现:
```
void fun(char *s)
{
int len = strlen(s);
for (int i = 0; i < len / 2; i++)
{
char temp = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = temp;
}
}
```
函数中使用了一个for循环,对字符串进行遍历,把首尾字符逐个交换位置,直到中间位置。最终返回逆置后的字符串。
阅读全文