将一句话里的单词进行倒置,标点符号不倒换。
来源:互联网 发布:五粮春45度淘宝才70元 编辑:程序博客网 时间:2024/05/16 05:45
比如 一句话“i love you.”转换后为:“you. love i”。
#include<string>#include<iostream>#include<stdio.h>using namespace std;int main(){ char *p=new char[50]; char *pt=new char[50]; char *h,*ht,*t,*hh,*hht;//h,hh用来保存p的头地址;ht,hht用来保存pt的头地址。 h=p;ht=pt;hh=p;hht=pt; *(p++)='\0';//将p块的第一个单位赋值为'\0',并移到下一个单位。 int flag=0;//记录该字符前连续出现的空格数。若为0,则说明该字符之前没有空格,也就是说它前面为字母,或者为串的结尾。 gets(p); while(*(p+1)!='\0') { p++;//倒序遍历,从最后一个字符开始。 } while(*p!='\0') { if (*p==' ') { if(flag==0)//flag=0,说明该字符之后为字母,应该将这些字母放入pt。 { t=(p+1);//从后面一个非空格字母开始,到'\0'结束。将它们复制到pt中。 while(*t!='\0') { *pt=*t; t++; pt++; } } *(pt++)=' ';//在pt中增加一个空格。 flag++;//p中连续空格数+1 *p='\0';//将该空格置为'\0',以便作为下一次将字母复制到pt中时的结尾符。 } else { flag=0;//如果不为空格,则将flag清零。 } p--;//p继续往前走。 } //此时p指向p块的第一个单位,里面是'\0'。 t=p+1;//如果第1个单词前面没有空格的话,则就不会将该字母写入pt。这里是为了将其写入pt。 //如果第一个单词前面有空格,则这一步不会复制任何东西到pt。因为*t=‘\0’。 while(*t!='\0') { *pt=*t; t++; pt++; } *pt='\0';//复制完毕,将pt的最后一个字符设置为'\0'。 while(*ht!='\0')//将pt中的内容重新复制到p中。ht指向pt块的首地址,h指向p块的首地址。 { *h=*ht; h++; ht++; } *h='\0';//在p的最后添加上结束符。 delete hht;//删除pt块。 cout<<hh<<'|';//输出p块中的内容。}
另一种方法:先将字符串全部倒置,然后再将其中的单词一个个倒置,将空格跳过。程序员面试宝典P228.
#include<iostream>#include<string>using namespace std;int main(){ string str; char temp; getline(cin,str); int i=0,beg=0,ed=0; i=str.length()-1; beg=0; ed=i; while(beg<ed) { temp=str[beg]; str[beg]=str[ed]; str[ed]=temp; beg++; ed--; } i=0; while(str[i]) { if(str[i]!=' ') { beg=i; while(str[i]&&str[i]!=' ') { i++; } i=i-1; ed=i; } while(beg<ed) { temp=str[beg]; str[beg]=str[ed]; str[ed]=temp; beg++; ed--; } i++; } cout<<str;}
- 将一句话里的单词进行倒置,标点符号不倒换。
- 将一句话里的单词进行倒置,标点符号不倒换
- 将一句话里的单词倒置,标点符号不倒换。
- 将一句话里的单词进行倒置,标点符号不倒换P228
- 将一句话里的单词进行倒置,标点符号不倒换(c++)
- <实例>C++ 将一句话里的单词进行倒置,标点符号不倒换。
- [笔试]网新恒天笔试-将一句话里的单词进行倒置,标点符号不倒换
- 字符串---将一句话里的单词进行倒置,标点符号不倒换
- 将一句话里的单词进行倒置,标点符号不倒置
- <实例>C++ 将一句话里的单词进行倒置,标点符号不倒换——使用string库实现
- 将一句话的单词进行倒置,标点符号不倒换。比如一句话:“i love you.”倒换后变为"you. love i"
- 将一句话中单词进行倒置,标点符号不倒置
- 将一句话中的单词进行倒换,标点符号不倒换,要求不使用辅助空间
- 将一句话里的单词进行倒置
- 将一句话里的单词进行倒置
- (1454)将一句话中的单词倒置,标点符号不倒置。
- 将一句话里的单词倒置,句号不倒置
- 将一句话里的单词进行逆置,标点符号不逆置
- linux 顶级ntp服务器配置
- SGU 186
- 各种指针的定义
- Linux 常用命令
- vss,rss,pss,uss
- 将一句话里的单词进行倒置,标点符号不倒换。
- 跟我一起学Python之十一:字典方法
- ASP.NET 编译
- ISE使用过程中遇到的一个诡异问题
- SGU 180
- Python支持中文
- ListView与Adapter的关系
- AS3.0实现音乐的播放和停止
- 删除系统更新后留下的文件夹