C语言题目,跪求大神解答!!!
函数reverse的原型为:voidreverse(chars[]);,其功能是将字符串s中的字符位置颠倒。例如,字符串“abcdefg”中的字符位置颠倒后变为“gfed...
函数reverse的原型为:void reverse(char s[]);,其功能是将字符串s中的字符位置颠倒。例如,字符串“abcdefg”中的字符位置颠倒后变为“gfedcba”。编制函数reverse并用相应的主函数进行测试。
展开
6个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverse(char s[]) //思路:第一个和最后一个交换。第二个和倒数第二个交换。交换次数是总字母个数的1/2取整。
{
char tmp;
int count = 0;
int i = 0;
int j = 0;
if(s == NULL)
{
printf("传入的参数错误!\n");
exit(-1);
}
while(s[count] != '\0')
{
count++; //统计字符串中字母个数
} //还可以通过这句话实现上面的while功能:count = strlen(s);
i = count/2; //计算交换的次数
count--;//方便后边第一个s[count]表示最后一个字母。
for(j=0; i>0; i--, j++, count--)
{
tmp = s[j];
s[j] = s[count];
s[count] = tmp;
}
}
int main()
{
char *p = "abcdefg";
reverse(p);
printf("%s\n", p);
return 0;
}
原创。哪不明白可以提问。。。。
#include <stdlib.h>
#include <string.h>
void reverse(char s[]) //思路:第一个和最后一个交换。第二个和倒数第二个交换。交换次数是总字母个数的1/2取整。
{
char tmp;
int count = 0;
int i = 0;
int j = 0;
if(s == NULL)
{
printf("传入的参数错误!\n");
exit(-1);
}
while(s[count] != '\0')
{
count++; //统计字符串中字母个数
} //还可以通过这句话实现上面的while功能:count = strlen(s);
i = count/2; //计算交换的次数
count--;//方便后边第一个s[count]表示最后一个字母。
for(j=0; i>0; i--, j++, count--)
{
tmp = s[j];
s[j] = s[count];
s[count] = tmp;
}
}
int main()
{
char *p = "abcdefg";
reverse(p);
printf("%s\n", p);
return 0;
}
原创。哪不明白可以提问。。。。
展开全部
#include<stdio.h>
#include <string.h>
void reverse(char s[])
{
int len=strlen(s);
int i;
char t;
for(i=0;i<len/2;i++)
{
t=s[i];
s[i]=s[len-i-1];
s[len-i-1]=t;
}
}
int main()
{
char s[]="abcdefg";
reverse(s);
printf("%s\n",s);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
void reverse(char s[]);
int main()
{
char a[]="abcdefg";
reverse(a);
puts(a);
return 0;
}
void reverse(char s[])
{
char t,*p=s;
while(*(p+1)&&*p)p++;
while(s<p)
{
t=*s;
*s=*p;
*p=t;
s++;
p--;
}
}
void reverse(char s[]);
int main()
{
char a[]="abcdefg";
reverse(a);
puts(a);
return 0;
}
void reverse(char s[])
{
char t,*p=s;
while(*(p+1)&&*p)p++;
while(s<p)
{
t=*s;
*s=*p;
*p=t;
s++;
p--;
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-27
展开全部
#include<stdio.h>
void reverse(char a[])
{ int i,j=0;char k;
while(a[j])j++;
j--;
for(i=0;i<=j;i++,j--)
{ k=a[i];
a[i]=a[j]
;a[j]=k;
}
}
main()
{ char a[20];
gets(a);
reverse(a);
puts(a);
}
void reverse(char a[])
{ int i,j=0;char k;
while(a[j])j++;
j--;
for(i=0;i<=j;i++,j--)
{ k=a[i];
a[i]=a[j]
;a[j]=k;
}
}
main()
{ char a[20];
gets(a);
reverse(a);
puts(a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void reverse(char *r){
size_t size=strlen(r);
char tmp;
for(size_t i=0;i<size/2;i++){
tmp=r[i];
r[i]=r[size-i];
r[size-i]=temp;
}
}
size_t size=strlen(r);
char tmp;
for(size_t i=0;i<size/2;i++){
tmp=r[i];
r[i]=r[size-i];
r[size-i]=temp;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询