求助 有C语言高手

来源:百度知道 编辑:UC知道 时间:2024/06/16 11:18:29
用一函数inv将一个字符串的字符逆序排列。输入输出在main函数中完成。要求在inv中用指针处理。谢谢

#include "stdio.h"
#include "string.h"

char *inv(char str1[])
{
int len,i;
len=strlen(str1);

for(i=0;i<len/2;i++)
{
str1[i]=str1[len-i-1]+str1[i];
str1[len-i-1]=str1[i]-str1[len-i-1];
str1[i]=str1[i]-str1[len-i-1];
}
}

main()
{
char *str;

printf("input str:");
scanf("%s",str);
inv(str);
printf("%s\n",str);
getch();
}

你连一点悬赏分都没有,哪个愿意打那么多字符哦,好歹也有两个小函数啊

char *inv(char *p)
{
char *q=p,temp;
int len=0,i;
while(*(q++) != '\0')
len++;
q=p;
for(i=0;i<len/2;i++)
if( *(q+i) != *(p+len-1-i))
{
temp = *(q+i);
*(q+i) = *(p+len-1-i);
*(p+len-1-i) = temp;
}

return q;

}

下面的程序代码完成楼主的要求,请参考。程序功能比较单一,就不做注释了。