c语言:把字符串中的内容逆置。求改错。
/*请编一个函数fun(char*s),函数的功能是把字符串中的内容逆置。例如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。请勿改...
/* 请编一个函数fun(char *s),函数的功能是把字符串中的内容逆置。例如:字符串中原有的内容为:
abcdefg,则调用该函数后,串中的内容为:gfedcba。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
*/
#include <string.h>
#include <stdio.h>
#define N 81
void fun ( char *s )
{
int len=0,i,t;
char *p=s,a;
for(;*s!='/0';s++)
len++;
s=p;
p=s+len-1;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{a=*s;*s=*p;*p=a;}
}
void main()
{ char a[N];
printf("Enter a string: ");
gets(a);
printf("The original string is: ");
puts(a);
fun(a);
printf("\n");
printf("The string after modified: ");
puts(a);
} 展开
abcdefg,则调用该函数后,串中的内容为:gfedcba。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
*/
#include <string.h>
#include <stdio.h>
#define N 81
void fun ( char *s )
{
int len=0,i,t;
char *p=s,a;
for(;*s!='/0';s++)
len++;
s=p;
p=s+len-1;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{a=*s;*s=*p;*p=a;}
}
void main()
{ char a[N];
printf("Enter a string: ");
gets(a);
printf("The original string is: ");
puts(a);
fun(a);
printf("\n");
printf("The string after modified: ");
puts(a);
} 展开
6个回答
展开全部
#include <string.h>
#include <stdio.h>
#define N 81
void fun ( char *s )
{
int len=0,i,t;
char *p=s,a;
for(;*s!='\0';s++)
len++;
s=p;
p=s+len-1;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{a=*s;*s=*p;*p=a;}
}
void main()
{ char a[N];
printf("Enter a string: ");
gets(a);
printf("The original string is: ");
puts(a);
fun(a);
printf("\n");
printf("The string after modified: ");
puts(a);
}
#include <stdio.h>
#define N 81
void fun ( char *s )
{
int len=0,i,t;
char *p=s,a;
for(;*s!='\0';s++)
len++;
s=p;
p=s+len-1;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{a=*s;*s=*p;*p=a;}
}
void main()
{ char a[N];
printf("Enter a string: ");
gets(a);
printf("The original string is: ");
puts(a);
fun(a);
printf("\n");
printf("The string after modified: ");
puts(a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void fun(char *s)
{
int len=0;
int i,j;
char c;
for(i = 0; s[i] != '\0'; i++);
i--;
for(j = 0; j <= i/2; j++,i--)
{
c = s[j];
s[j]=s[i];
s[i]=c;
}
}
经测试能用。
{
int len=0;
int i,j;
char c;
for(i = 0; s[i] != '\0'; i++);
i--;
for(j = 0; j <= i/2; j++,i--)
{
c = s[j];
s[j]=s[i];
s[i]=c;
}
}
经测试能用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void fun ( char* s )
{
int len=0,i,t;
char *p,a;
p=s;
while(*s!='\0')
{ len++;
s++;
}
printf("%d",len);
s=p;
p=s+len-1;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{a=*s;*s=*p;*p=a;}
}
注意一下开始的时候的赋值。然后把for循环改成while比较好,这样就ok啦
{
int len=0,i,t;
char *p,a;
p=s;
while(*s!='\0')
{ len++;
s++;
}
printf("%d",len);
s=p;
p=s+len-1;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{a=*s;*s=*p;*p=a;}
}
注意一下开始的时候的赋值。然后把for循环改成while比较好,这样就ok啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <string.h>
#include <stdio.h>
#define N 81
void fun ( char *s )
{
int i,t;
int len=strlen(s);
char *p=s+len-1, a;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{ a=*s; *s=*p; *p=a; }
}
void main()
{ char a[N];
printf("Enter a string: ");
gets(a);
printf("\n");
printf("The original string is: ");
puts(a);
fun(a);
printf("The string after modified: ");
puts(a);
}
#include <stdio.h>
#define N 81
void fun ( char *s )
{
int i,t;
int len=strlen(s);
char *p=s+len-1, a;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{ a=*s; *s=*p; *p=a; }
}
void main()
{ char a[N];
printf("Enter a string: ");
gets(a);
printf("\n");
printf("The original string is: ");
puts(a);
fun(a);
printf("The string after modified: ");
puts(a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void fun ( char *s )
{
int len=0,i;
char a;
for(i=0;*(s+i)!='/0';i++)
len++;
t=len/2;
for(i=0;i<len/2;i++)
{
a=*(s+i);
*(s+i)=*(s+len-i);
*(s+len-i)=a;
}
}
{
int len=0,i;
char a;
for(i=0;*(s+i)!='/0';i++)
len++;
t=len/2;
for(i=0;i<len/2;i++)
{
a=*(s+i);
*(s+i)=*(s+len-i);
*(s+len-i)=a;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询