如何用C语言实现字符串逆序排列

来源:百度知道 编辑:UC知道 时间:2024/05/08 06:06:31
如题
函数原型:static char *reverse(char *s)

思想:用strlen获得s的长度n,定义一个临时的字符数组temp[],用循环实现把temp[0]=s[n],temp[1]=s[n-1]……
temp[]就是所求得的数组。

好像清华大学出版社出版的由潭浩强主编的《C程序设计》(2或3版)中有类似的例题。

static char *reverse(char *s)
{
static char sss[20];
for(i=0,s[i]!='\0';i++);
for(j=0,i--;i>=0;j++,i--)
sss[j]=s[i];
sss[j]='\0';
return sss;
}

#include <stdio.h>
#include "stdlib.h"

static char* reverse(char *s)
{
char *q=s;
while(*q!='\0') q++;
char *answer=(char *)malloc(sizeof(char)*(q-s+1));
char *p=answer;
q--;
do{
*p++=*q--;
}while(q>=s);
*p='\0';
return answer;
}

void main()
{
char *a="abc";
char *b=reverse(a);
printf("%s\n",b);
}

支持二号