This is a new start.
many code from the blogs can't work actually. So I post some really working code.
1. code to reverse the words in a sentence. ----- 倒序句子里的单词。
The idea is:
"ab cd" ---> "dc ba" ----> "dc"+"ba" ----> "cd"+"ab"
The first time is reversing the all items(letters+space) in whole sentence, the second time is reverse the letters of each word.
#include <stdio.h>
#include <string.h>
char * invert(char *start, char *end)
{
char tmp, *ptmp = start;
while (start != NULL && end != NULL && start < end)
{
tmp = *start;
*start = *end;
*end = tmp;
start ++;
end --;
}
return ptmp;
}
void reverse_word(char* string)
{
int len=strlen(string);
char* input_string=NULL;
char* start_pos=NULL;
invert(string,string+len-1);
input_string = string;
while(*input_string != '\0'){
if(start_pos ==NULL){
start_pos=input_string;
}
if(*input_string==' '){
invert(start_pos,input_string-1);
start_pos=NULL;
}
input_string++;
}
invert(start_pos,input_string-1);
}
int main(int argc,char** argv)
{
char mytest_string[]="abcdefghijk is my word";
reverse_word(mytest_string);
printf("%s\n",mytest_string);
return 0;
}