编写函数,将句子中的单词位置倒置,而不改变单词内部的结构
思路二:将句子整体先倒置,然后再将句子中的单词倒置
#include
#include
void RevStr(char *srt) {
char *start = srt, *end = srt, *ptr = srt;
while (*ptr++ != '\0')
end = ptr - 2;
while (start < end) {
char temp;
temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
printf("%s\n", srt);
start = srt, end = srt - 2;
ptr = start;
while (*ptr++ != '\0') {
if (*ptr == ' ' || *ptr == '\0') {
end = ptr - 1;
while (start < end) {
char temp;
temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
start = end = ptr + 1;
}
}
}
int main(){
char srt[] = "I am from shanghai";
RevStr(srt);
printf("%s\n", srt);
return 0;
}