#include <string.h> #include <stdio.h> #include <stdlib.h> //将一句话的单词进行倒置,标点符号不倒换。比如一句话:“i love you.”倒换后变为"you. love i" void reverse(char *str) { int i=0,j=strlen(str)-1; int begin,end; char temp; //第一步进行全部翻转 while (i<j) { temp=str[i]; str[i]=str[j]; str[j]=temp; i++; j--; } i=0; //进行部分翻转,如果不是空格,则开始翻转 while(str[i]!='\0') { if (str[i]!=' ') { begin=i; while (str[i]&&str[i]!=' ') { i++; } i=i-1; end=i; } while(begin<end) { temp=str[begin]; str[begin]=str[end]; str[end]=temp; begin++; end--; } i++; } } void main() { char a[]="i love you."; reverse(a);//注意这里只能使用char a[]="i love you.";不能使用char *a="i love you.";因为在reverse中要修改a的值,而字符串常量不能修改 printf("%s",a); }