void reseve(char* str) {
/*char* start = str;
char* end = str + strlen(str)-1;
if (*str) {
char temp;
temp = *start;
*start = *end;
*end = '\0';
reseve(start + 1);
*end=temp;
}*/
char* start = str;
char* end = str + Strlen(str) - 1;
if (*str) {
//交换首尾内容
char temp = *start;
*start = *end;
*end = '\0';
Reverse_string(start + 1);
//恢复数据
*end = temp;
}
}
void part_change(char* str, char* end) {
while (str < end) {
char temp;
temp = *str;
*str = *end;
*end = temp;
str++;
end--;
}
}
void Change(char* str) {
//整体交换
reseve(str);
//局部交换
char* start = str;
char* cur = str;
while (*cur) {
cur++;
if (*cur == ' ' || *cur == '\0')
{
part_change(start, cur-1);
start = cur + 1;
}
}
}