首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言菜鸟有关问题~HELP~

2012-02-12 
C语言初学者问题~~`HELP~!/*请编写一个函数fun(char*s),该函数的功能是把字符串中的内容逆置.例如:字符串

C语言初学者问题~~`HELP~!
/*   请编写一个函数fun(char   *s),该函数的功能是把字符串中的内容逆置.
例如:字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba.       */
#include   <stdio.h>
#include   <string.h>
fun(char   *s)
{
int   i,j=strlen(s);
 
char   b,c[100];
for(i=0;i <j/2;i++,j--)
{
b=*(s+i);
*(s+i)=c[j];
c[j]=b;
}
c[j]= '\0 ';

puts(c);



}

main()
{
char   a[100];
gets(a);
fun(a);



}
  请问错在什么地方啊`~~谢谢大家了```

[解决办法]
#include <stdio.h>
#include <string.h>
void fun(char *s)
{
int i,j=strlen(s);

char b,c[100];
for(i=0;i <strlen(s);i++,j--) // j--在变化
{
b=*(s+i);
/**(s+i)=c[j]; */ c[j] 初始根本就没值,你这里意思就是想把把输入进的字符串的值一个个的放在b里保存,然后逆序再赋给数组C吧?如果是这样,这句没必要.
c[j-1]=b; // 数组下标是从0开始的,最后的下标应该是数组长度-1.
}
j = strlen(s); // 这里应该是把C数组最后的元素赋 '\0 ',你那是把最初的赋 '\0 ',会什么都看不见的..
c[j]= '\0 ';
puts(c);
}
int main()
{
char a[100];
gets(a);
fun(a);

return 0;
}


热点排行