今天将指针和函数全部学完了,之前这题的做法,现在看来有点繁琐,于是乎做了一些修改,下面是新的代码
//you are from shanghai逆序#include <stdio.h>
#include <string.h> //下面要用到strlenvoid reverse(char* str);int main()
{char str[] = "you are from shanghai";reverse(str); //全部逆序char* p1 = str; char* p2 = str;while (*p2) //p2向后移动{ if (' ' == *p2) //遇到空格则将上一个单词进行逆序{*p2 = '\0'; reverse(p1);*p2 = ' ';p1 = p2 + 1;}p2++;}reverse(p1); //将‘\0’之前的那个单词逆序puts(str); //输出return 0;
}void reverse(char* str) //函数功能:在一段范围内进行逆序
{int len = strlen(str);int min = 0;int max = len - 1;while(min < max){int tmp = str[min];str[min++] = str[max];str[max--] = tmp;}
}