实现功能 I am a teacher => I ma a rehcaet
或者:I am a teacher => teacher a am I
或者:I am a teacher => rehcaet a ma I
/*
word_reversal 函数实现:整体逆序
例如:I am a teacher => rehcaet a ma I
teacher => rehcaet
*/
int word_reversal(char *ptr, int plen)
{
if(!ptr || plen <= 0)
return -1;
char *start = ptr;
char *end = ptr + plen - 1;
printf("\n start:%s,\n end:%s, plen:%d \n", start, end, plen);
char pr;
while(end > start) {
//printf("\n *start:%c,*end:%c\n", *start, *end);
pr = *start;
*start++ = *end;
*end-- = pr;
}
printf("\n====ptr:%s\n", ptr);
return 0;
}
int sentence_reversal(char *str)
{
if(!str)
return -1;
printf("\n-0-str:%s\n", str);
//int tlen = strlen(str);
//word_reversal(str, tlen);
//printf("\n----str:%s\n", str); //打开这三句实现: I am a teacher => teacher a am I
char *eword = str;
char *startw = eword;
int wlen = 0;
while(*eword != '\0')
{
startw = eword;
wlen = 0;
//printf("\n==eword:%s,startw:%s,wlen:%d.\n", eword,startw,wlen);
while (*eword != ' ' && *eword != '\0'){ // || *str != '\0'
eword++;
wlen++;
}
//printf("\n--eword:%s,startw:%s,wlen:%d.\n", eword,startw,wlen);
word_reversal(startw, wlen);
while(*eword == ' ')
++eword;
}
printf("\n--str:%s\n", str);
return 0;
}