你好!欢迎来到深圳市颖特新科技有限公司!
语言
当前位置:首页 >> 技术中心 >> 单片机入门 >> 关于字符串的逆序题目

关于字符串的逆序题目

关键字:C语言 作者:admin 来源:不详 发布时间:2018-05-18  浏览:0

今天做了一道关于字符串逆序的题目,题目为输入I am a student,而输出为student a am I。这道题的思路很清楚,就是先把整个句子逆序,然后将一个一个单词逆序,这样便得到了最终结果。而在将单词逆序的时候,可以设置两个指针,一个指针依次遍历,当遍历到空格的时候,将此时的指针代表的值赋\0,然后将另一个指针传到逆序函数中,函数结束后,再赋空格。

  1. /********************************************************** 
  2. File Name:          
  3. Description:   输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。(笔试题) 
  4.                 句子中单词以空格符隔开。为简单起见,没有标点符号。 
  5.                 例如输入“I am a student”,则输出“student a am I” 
  6. Fuction List: 
  7. ************************************************************/  
  8. #include <stdio.h>  
  9. #define N 50  
  10.   
  11. void overturn1(char *p)  
  12. {  
  13.     char *h = p;  
  14.       
  15.     while (*(++p) != '\0')  
  16.     {  
  17.         ;  
  18.     }  
  19.     p = p - 1;  
  20.     char temp;  
  21.     while(h <= p)  
  22.     {  
  23.         temp = *(p);  
  24.         *p = *h;  
  25.         *(h) = temp;      
  26.         p--;  
  27.         h++;  
  28.     }  
  29. }  
  30.   
  31. void overturn2(char* p)  
  32. {  
  33.     char *pre = p;  
  34.     char *cur = p;  
  35.       
  36.     while (*(cur) != '\0')  
  37.     {  
  38.         if (*(cur) == ' ')  
  39.         {  
  40.             *cur = '\0';  
  41.             overturn1(pre);  
  42.             *cur = ' ';  
  43.             cur++;  
  44.             pre = cur;  
  45.         }  
  46.         else  
  47.         {  
  48.             cur++;  
  49.         }  
  50.     }  
  51.       
  52.     overturn1(pre);  
  53.       
  54. }  
  55.   
  56. int main()  
  57. {  
  58.     char phrase[N] = {0};  
  59.       
  60.     printf("please input:\n");  
  61.     gets(phrase);  
  62.       
  63.     overturn1(phrase);  
  64.     overturn2(phrase);  
  65.     puts(phrase);  
  66.       
  67.     return 0;  
  68. }  

编辑:admin  最后修改时间:2019-06-17

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright © 2014-2023 颖特新科技有限公司 All Rights Reserved.  粤ICP备14043402号-4