编写一个函数revstr(char *string),将函数字符串中的字符反转输出

编写一个函数revstr(char *string),将函数字符串中的字符反转输出.

编了如下程序,求不出来,求帮改 谢谢~

img


首尾字符不断交换就行了啊
首先函数有参数string,你要用啊,怎么又定义一个数组a啊。函数里的char a[10]删掉,然后将其它a都改为string。函数里的printf函数也删掉,函数不需要输出
另外,函数里并没有计算字符串长度啊。加上#include <string.h>,然后函数里加上int len = strlen(string);并将for语句中的10改为len
另外,main函数中,将revstr(a)放到printf语句前面,先进行字符串转换,然后再输出啊
帮你写一个
void revstr(char *string)
{
int n = strlen(string);
for (int i = 0; i < n / 2; i++)
{
char t = string[i]; 
string[i] = string[n - i - 1];
string[n - i - 1] = t;
}
}

首先将字符串string复制到数组a,然后把j赋值为数组a里最后一个字符的下标,每次循环j--即可。

修改如下:


#include <stdio.h>
#include <string.h>
void revstr(char *string){
    
    int i,j,t;
    char a[10];
    
    strcpy(a,string);
    
    for(i=0,j=strlen(string)-1;i<j;i++,j--){
        t=a[i];
        a[i]=a[j];
        a[j]=t;
    //    printf("a[%d]=%c\n",i,a[i]);
    } 
    
    printf("%s",a);
} 


int main(void){
    
    char a[10];
    gets(a);
    printf("%s\n",a);
    revstr(a);
    
    return 0;
}

img