编写一个函数revstr(char *string),将函数字符串中的字符反转输出.
编了如下程序,求不出来,求帮改 谢谢~
首尾字符不断交换就行了啊
首先函数有参数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;
}