方法是先反转整个字符串,然后再反转字串。譬如先将“I am a student”反转为“tneduts a ma I”,然后再对每个字串(空格分割)反转一次。思想就那么简单吧。

第一种:

#include <stdio.h>void main()
{char str[]="you are a student";printf(str);printf("\n");char *p,*q;char temp;p=q=str;while(*q!='\0'){q++;}q--;while(p<=q){temp=*p;*p=*q;*q=temp;p++;q--;}//反转整个字符串
printf(str);printf("\n");char *s;q=p=s=str;//指针指向开始位置while(*q!='\0'){if(*q==' '||*(q+1)=='\0'){p--;if(*(q+1)=='\0')//处理最后一个字串p++;while(s<=p){temp=*p;*p=*s;*s=temp;s++;p--;}//反转局部字符串
s=q+1;p=q;}q++;p++;}printf(str);printf("\n");
}

第二种:

#include <iostram>
#include <stdio.h>int main(void)
{int num=-12345,j=0,i=0,flag=0,begin,end;char str[]="I am a student",temp;j=strlen(str)-1;printf(" string=%s\n",str);//第一步是进行全盘反转,将单词变成“tneduts a ma I”while(j>i){temp=str[i];str[i]=str[j];str[j]=temp;j--;i++;}printf(" string=%s\n",str);int i=0;//第二步进行部分反转,如果不是空格则开始反转单词while(str[i]){if(str[i]!=' '){begin=i;while(str[i]&&str[i]!=' '){i++;}i=i-1;end=i;}while(end>begin){temp=str[begin];str[begin]=str[end];str[end]=temp;end--;begin++;}i++;}printf(" string=%s\n",str);return 0;
}

第三种:

void  ReverseWord( char * p,  char * q)
{
     while (p < q)
     {
         char  t = *p ;
         *p++ = *q ;
         *q-- = t ;
     }
}
char * ReverseSentence( char  *s)
{
     char  *p = s ;    // point to the first char of a word
     char  *q = s ;    // point to a white space or '\0'
     while (*q !=  '\0' )
     {
         if  (*q ==  ' ' )
         {
             ReverseWord(p, q - 1) ;
             q++ ;  // move to next word
             p = q ;
         }
         else
             q++ ;
     }
     ReverseWord(p, q - 1) ;  // Reverse the last word
     ReverseWord(s, q - 1) ;  // Reverse the whole sentence
     return  s ;
}

“I am a student”反转成“student a am I”相关推荐

  1. 输入一个英文句子,翻转句子中的单词,要求单词内的字符顺序不变。 如:I am a student. 转换成 student. a am I

    输入一个英文句子,翻转句子中的单词,要求单词内的字符顺序不变. 如:I am a student. 转换成 student. a am I 算法分析: 1.通过ReverseString(s,0,5) ...

  2. 将i am a student转换成 student a am i

    整体思路:1.先将整个字符串逆序 2.再将整个单词逆序 void Reverse_word(char *left,char *right) {assert(left);assert(right);wh ...

  3. 【牛客网笔试】:Python实现:将i am a student转换成 student. a am i

    Q: 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"stud ...

  4. (7)-(Reverse Integer)-(将整数按位反转成另外一个整数,考虑溢出)-(知道最大整数和最小整数值)...

    (7)-(Reverse Integer)-(将整数按位反转成另外一个整数,考虑溢出)-(知道最大整数和最小整数值)//Reverse digits of an integer.//Example1: ...

  5. 用CSS画小猪佩奇,你就是下一个社会人! js将“I am a coder”反转成 “coder a am I”,不许用split,join,subString,reverse;求解方法三...

    用CSS画小猪佩奇,你就是下一个社会人! 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:江志耿 | 腾讯TEG网络工程师 我是佩奇,哼,这是我的弟弟乔治,呱呱,这是我的妈妈,嚯,这 ...

  6. 有一个List集合,里面存储了5个Student对象。Student有姓名、年龄和成绩属性,按照多个属性进行排序(一行代码解决list对象集合排序问题)。

    有一个List集合,里面存储了5个Student对象.Student有姓名.年龄和成绩属性,按照要求进行排序(一行代码解决list对象集合排序问题). 要求对List集合进行排序,排序规则是: 1.先 ...

  7. 数据转换成二维码并导出进Excel中和导入时解码二维码反转成数据

    数据转换成二维码并导出进Excel中和导入时解码二维码反转成数据 第一步在maven中配置需要的二维码jar包 1.1 谷歌提供的帮助类 1.2 关于二维码的工具类 1.3 测试类 第二步 在Exce ...

  8. java student数组_java-类引用型数组Student[] arr=new Student[5]

    package com.day11.集合框架概述; import com.day11.bean.Student; public class Demo1Array { /** * @param args ...

  9. typedef struct student与 struct student的区别

    typedef struct student { int data: typedef struct student *next: }student: struct student { int name ...

最新文章

  1. UVa 1057 - Routing
  2. 关联关系和依赖关系的区别
  3. 计算高效,时序一致,超清还原!清华NYU 提出 RRN:视频超分新型递归网络
  4. 系统性能测试--杨建旭
  5. OpenCV学习笔记-关于使用Mat.at(i,j) = int 语法报错
  6. c++矩阵类_数据结构-JavaScript矩阵类的设计与实现
  7. Unity3d--美工建模须知【转http://blog.csdn.net/tanmengwen/article/details/8735889】
  8. niosii spi 外部_NIOS II SPI详解 如何使用SPI方式传输
  9. gp数据库中Appendonly与compresslevel
  10. 基于ggplot2网络可视化(二)
  11. 关于SQL\SQL Server的三值逻辑简析
  12. 怎么在服务器上运行sql文件,数据库执行sql文件
  13. python实例100例下载-Python的100个练习实例免费下载
  14. Python实时爬取斗鱼弹幕
  15. python在地图上标注点_只要两步,用Python将地址标记在地图上!
  16. Make the Team(匈牙利算法)
  17. vue实现简单搜索功能
  18. python两个列表的差集_Python求两个list的差集、交集与并集的方法
  19. 关于pytorch中各种矩阵乘法运算的区别
  20. mac 查看本机的IP地址

热门文章

  1. 如何在YouTube Api限额的情况下获取更多视频
  2. 在flake8源文件中修改最大字符长度
  3. arm64的ioremap_4412 GPIO读 和 ioremap控制GPIO寄存器
  4. Solana 宝藏项目 — Swim Protocol,解决跨链痛点,突破价值壁垒一、 公链现状随着 DeFi、NFT、GameFi 等应用程序的爆发,更多的开发者选择将项目构建在 TPS 更
  5. Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2) J. Robot Factor
  6. 测试用例设计方法_因果图法(游戏向)
  7. STM32 待机模式 和 停止模式 RTC闹钟调试笔记
  8. OpenHarmony 3.1 Beta 样例:使用分布式菜单创建点餐神器
  9. arduino 停止程序_Arduino-常用指令
  10. 26-tcp可靠传输——停止等待协议