字符串反转

要求是将“i am student”,反转之后变成“student am i”.
思路是这样的:可以先将整个字符串反转,变成”tneduts ma i”;然后根据空格将字符串分成几段处理,分别把这几小段再反转过来就行了。完整C代码如下:

#include <stdio.h>
#include
<string.h>

//该函数用于将str完整的反转
void reverse(char str[]){
int len = strlen(str);
for(int i=0;i<len/2;i++){
char temp = str[i];
str[i]
= str[len-i-1];
str[len
-i-1] = temp;
}
}

//将字符串按照单词反转
void convert_str(char str[]){
reverse(str);
int len = strlen(str);
int i,j,k=0;
while(k<len){
i
=j=k;
while(str[j]!=' '&& str[j]!='\0'){
j
++;
}
k
=j+i;
j
--;
for(;i<j;i++,j--)
{
char temp=str[i];
str[i]
=str[j];
str[j]
=temp;
}
}
}
int main(){
char str[]="i am student";
convert_str(str);
puts(str);
}
posted @ 2011-05-27 14:37  winxp_520  阅读(...)  评论(... 编辑 收藏