编写函数,将"I am from shanghai"倒置为"shanghai from am I",即句子中的单词位置倒置,而不改变单词内部的结构。
思路一:将句子中所有的单词进行翻转,然后再对全局进行翻转
#include <stdio.h>
void Revstr(char *str){
char *start = str, *end = str, *ptr =str;
while (*ptr++ != '\0'){
if (*ptr == ' ' || *ptr == '\0'){
end = ptr - 1;
while (start < end) {
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
start = ptr + 1;
}
}
printf("%s\n", str);
start = str, end = ptr -2;
while (start < end){
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main(){
char str[] = "I am from shanghai"
Revstr(str);
printf("%s\n", str);
return 0;
}