首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

字符串的按单纯词逆序(带标点)

2013-10-22 
字符串的按单词逆序(带标点)主要思想:先写出单词逆序的函数,再写整个句子逆序的函数(在其中查找单词,找到

字符串的按单词逆序(带标点)

主要思想:先写出单词逆序的函数,再写整个句子逆序的函数(在其中查找单词,找到后调用单词逆序的函数逆序,最后将整个句子逆序)。

程序缺点:只能识别几个常用的标点符号

源代码及测试程序:

//给定一个字符串,按单词将该字符串逆序,含标点   #include<stdio.h>    //start 和 end 之间逆序的函数void reverse_word(char *start, char *end) {      while(start < end) {          *start = *start ^ *end;          *end = *start ^ *end;          *start = *start++ ^ *end--;      }  }  char *reverse_sentence(char *str) {      char *start = str;      char *end = str;      while(*end != '\0') {          if(*end==' ' || *end=='!' || *end==',' || *end=='.' || *end=='?')//查到一个单词 {  if(start < end)//只有一个字母的单词不逆序reverse_word(start, end-1);  while(*end==' ' || *end=='!' || *end==',' || *end=='.' || *end=='?')end++; //指向下一个单词首字符               start = end;          }          else              end++;      }      reverse_word(str, end-1);//整个句子逆序         return str;  }    int main(int argc, char *argv[]) {      char str[] = "Hello, I am glad to see you!";    printf("%s\n", str);      printf("%s\n", reverse_sentence(str));        return 0;  } 

热点排行