问题:如何实现student a am i转换成为i am a student?
解析:可将语句完全倒置,成为i ma a tneduts,再将逐个单词倒置,成为i am a student
- #include <stdio.h>
- #include <string.h>
- void reverse_string(char *l,char *r)
- {
- while (l < r)
- {
- char tmp = *l;
- *l = *r;
- *r = tmp;
- l++;
- r--;
- }
- }
- void reverse(char ch[],int len)
- {
- int i = 0;
- char *ctmpl = ch;
- char *ctmpr = ch;
- while (ch[i])
- {
- if (ch[i] == ' ')
- {
- reverse_string(ctmpl,ctmpr-1);
- ctmpl = ++ctmpr;
- }
- else
- {
- ctmpr++;
- }
- i++;
- }
- reverse_string(ch,ch + len - 1);
- }
- int main()
- {
- char ch[] = "student a am i";
- reverse(ch,strlen(ch));
- printf("%s\n",ch);
- }