一道c语言题目:编一个函数fun(char *s)把字符串中内容逆置,求教
#include<string.h>#include<conio.h>#include<stdio.h>#defineN81voidfun(char*s){char*p=...
#include <string.h>
#include <conio.h>
#include <stdio.h>
#define N 81
void fun(char*s)
{char *p=s;
char t[N];
int i=0,j=0;
while(p[i])i++;
i--;
while(i>=0)
t[j++]=p[i--];
t[j]=0;
s=t;
}
main()
{
char a[N];
FILE *out;
printf("Enter a string:");
gets(a);
printf("The original string is:");
puts(a);
fun(a);
printf("\n");
printf("The string after modified:");
puts(a);
strcpy(a,"Hello World!");
fun(a);
/******************************/
out=fopen("out.dat","w");
fprintf(out,"%s",a);
fclose(out);
/******************************/
}
fun内为我编写的,为什么fun处理之后输出还是原字符串? 展开
#include <conio.h>
#include <stdio.h>
#define N 81
void fun(char*s)
{char *p=s;
char t[N];
int i=0,j=0;
while(p[i])i++;
i--;
while(i>=0)
t[j++]=p[i--];
t[j]=0;
s=t;
}
main()
{
char a[N];
FILE *out;
printf("Enter a string:");
gets(a);
printf("The original string is:");
puts(a);
fun(a);
printf("\n");
printf("The string after modified:");
puts(a);
strcpy(a,"Hello World!");
fun(a);
/******************************/
out=fopen("out.dat","w");
fprintf(out,"%s",a);
fclose(out);
/******************************/
}
fun内为我编写的,为什么fun处理之后输出还是原字符串? 展开
4个回答
展开全部
局部变量t无法通过s=t的方式返回。
把s=t改成strcpy(s,t);
把s=t改成strcpy(s,t);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-27
展开全部
你原来的函数,处理一半是逆序,再继续处理,就又逆序回来了
void fun(char *s)
{
int len = 0, i = 0;
char tmp;
len = strlen(s);
for(i = 0; i < (len - 1) / 2; i ++)
{
tmp = s[i];
s[i] = s[len - 1 - i];
s[len - 1 - i] = s[i];
}
return;
}
void fun(char *s)
{
int len = 0, i = 0;
char tmp;
len = strlen(s);
for(i = 0; i < (len - 1) / 2; i ++)
{
tmp = s[i];
s[i] = s[len - 1 - i];
s[len - 1 - i] = s[i];
}
return;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试我的fun
char len=0,temp,*q=p;
while(*q)
{ q++; len++; }
q--;
len\=2;
for(;len;len--)
{ temp=*p; *p=*q; *q=temp; }
char len=0,temp,*q=p;
while(*q)
{ q++; len++; }
q--;
len\=2;
for(;len;len--)
{ temp=*p; *p=*q; *q=temp; }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
循环变量的下限控制 上出来问题
举例 a[0] ~ a[5] 六个元素
a[0] a[5]交互
a[1] a[4]交互
a[2] a[3]交互
到这里就该结束了
如果继续
a[3] a[2]交互
.......
这样就把 倒过来的 又再倒回去了
举例 a[0] ~ a[5] 六个元素
a[0] a[5]交互
a[1] a[4]交互
a[2] a[3]交互
到这里就该结束了
如果继续
a[3] a[2]交互
.......
这样就把 倒过来的 又再倒回去了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询