总结最近学习成果13-hello world

hello world -> olleh dlrow

char* ReverseSWord(char* t){//给头地址返回尾地址-1  找到空格说明一个单词结束  找到\0说明到末尾  还需要注意的是 这里返回的是地址值  因此返回值类型应该是char*
      while (*t != ' '&& *t != '\0'){
            t++;
      }
      return t - 1;
}
void ReverseWWord(char* t, char* w){//给定头地址 尾地址  依次交换 (因为通过地址修改对应位置的数据 因此用到字符数组)
      char c;
      while (t < w){
            c = *t;
            *t = *w;
            *w = c;
            t++;
            w--;
      }
}
void ReverseWord(char* s){//给定字符串  通过调用得到一个单词的尾地址    通过调用使单词相应顺序调换
      //然后将头地址后移 单词尾地址+1个单位 (+1 是因为 返回得到的尾地址-1)
      while (*s != '\0'){
            char* w = ReverseSWord(s);
            ReverseWWord(s, w);
            s = w + 1;
            while (*s == ' '){//过滤空格  一旦遇见空格就把字符串首地址后移
                  s++;
            }
            if (*s == '\0'){//当首地址取*已经是\0说明字符串结束  跳出
                  break;
            }
      }
}

猜你喜欢

转载自blog.csdn.net/RyanXTY/article/details/89048129