求C语言字符串倒置写法

来源:百度知道 编辑:UC知道 时间:2024/06/03 19:15:00
求C语言字符串倒置写法
简单一点的就行,不用太复杂~~
而且不要用到#include <string.h>

for(i=0,j=n-1;i<j;i++,j--)
{
t=x[i];
x[i]=x[j];
x[j]=t;
}
自己补充一下,应该知道怎么补吧~~~~~~~~~~~~~~
写程序主要是掌握算法~~

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;
}

int strlen(char *s)
{
int i=0;
while (*s!='\0')
{
s++;
i++;
}
return i;
}

char * reverse(char *s){
int len=strlen(s);
int j=0
char *str=malloc(sizeof(char)*len);
for (j=0;j<=len;j++)
str[j]=s[len-j];

str[len]='\0';
return str;

}

将字符串放入数组,再倒过来不就OK了?

我的算法是原地转置。原地转置有个问题,就是不能对静态存储的字符串操作。比如char *s="abc";reverse(s);就会出错。楼上的几位的算法不是原地转置,可以对静态字符串操作。

void reverse(char *s)
{
char *p=s;
wh