编程实现字符串中各单词的翻转
2011-09-13 11:33
309 查看
编写函数,将"i am from henan "倒置为"henan from am i"即将句子中的单词位置倒置,而不改变单词内部的机构
编程实现字符串中各单词的翻转
第一种方法:
方法1 先把每个单词逆置,再将整个字符串逆置
方法2 先将整个字符串逆置,再将每个单词逆置
编程实现字符串中各单词的翻转
第一种方法:
#include "stdafx.h" #include <iostream> using namespace std; //编程实现字符串中各单词的翻转 //方法1 void Revese(char *str){ char *start=str,*end=str,*ptr=str; //开头,结尾,中间指针 while (*ptr++!='\0') { if (*ptr==' '||*ptr=='\0') //找到一个单词 { end=ptr-1; //end指向单词末尾 while (start<end) swap(*start++,*end--); //把单词的字母逆置 start=end=ptr+1; //指向下一个单词开头 } } start=str,end=ptr-2;//start指向字符串开头,end指向字符串末尾 while (start<end) { swap(*start++,*end--); } } int _tmain(int argc, _TCHAR* argv[]) { char Str[30]="i am from henan"; Revese(Str); cout<<Str<<endl; getchar(); return 0; }
方法1 先把每个单词逆置,再将整个字符串逆置
#include "stdafx.h" #include <iostream> using namespace std; //编程实现字符串中各单词的翻转 //方法2 void Revese(char *str){ char *start=str,*end=str,*ptr=str; while (*ptr++!='\0'); end=ptr-2; //找到字符串末尾 while (start<end) { swap(*start++,*end--);//将整个字符串逆置 } start=str;//指向字符串开头 end=ptr-2;//指向字符串末尾 ptr=start;//指向字符串开头 while (*ptr++!='\0') { if (*ptr==' '||*ptr=='\0') //找到一个单词 { end=ptr-1;//指向单词末尾 while (start<end) { swap(*start++,*end--); } start=end=ptr+1;//指向下一个单词开头 } } } int _tmain(int argc, _TCHAR* argv[]) { char Str[30]="i am from henan"; Revese(Str); cout<<Str<<endl; getchar(); return 0; }
方法2 先将整个字符串逆置,再将每个单词逆置
相关文章推荐
- 编程实现字符串中各单词的翻转
- [C/C++笔面试]编程实现字符串中各单词的翻转
- 面试题:编程实现将字符串的各个单词翻转
- 实现字符串中各单词翻转
- 实现以单词为单位的翻转字符串
- php实现字符串翻转,使字符串的单词正序,单词的字符倒序
- Exe5 实现字符串中个单词的翻转——其中单词以空格、',' 、'.' 分隔开来
- 字符串中单词翻转实现
- 编程实现字符中各单词的翻转
- JavaScript编程实现字符和字符串翻转
- 按单词翻转字符串 C语言实现
- 剑指Offer面试题42:翻转单词顺序;左旋转字符串 Java实现
- 古娜拉黑暗之神(编程实现字符串中各单词的反转)
- php实现按单词对字符串进行翻转
- 按单词翻转字符串(C实现)
- 【编程珠玑】第十五章--字符串:统计文本中单词数量(C++的Map&C的结构体实现&POJ2418)
- 字符串反转,单词不反转实现
- 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)
- 华为机试(字符串最后一个单词长度,计算字符串的个数,明明的随机数) Java实现
- Java实现正则匹配出script标签中字符串包含某个几个单词的所有行,以及编码转换