您的位置:首页 > 编程语言 > C语言/C++

c语言,将字符串逆置,如"i am a student"逆置为"student a am i"

2015-10-31 15:43 405 查看
#include<stdio.h>
#include<assert.h>
/*求字符串长度*/
int my_strlen(char *str)
{
assert(str);
int count=0;
while(*str)
{
count++;
str++;
}
return count;
}
/*逆置函数*/
char *reverse_str(char *start,char *end)
{
char *ret=start;
char temp;
while(start<end)
{
temp=*start;
*start=*end;
*end=temp;
start++;
end--;
}
return ret;
}

char *reverse(char *str)
{
assert(str);
char *tmp=str;
char *start=str;
char *end=str+my_strlen(str)-1;
reverse_str(start,end);//逆置字符串
while(*str)
{
start=str;
while((*str!=' ')&&(*str!='\0'))
{
str++;
}
end=str-1;
reverse_str(start,end);//逆置单词
if(*str==' ')
str++;
}
return tmp;
}
int main()
{
char arr[]="i am a student";
printf("%s\n",reverse(arr));
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 字符串逆置