将字符串以单词为单位逆序"I am a Student" 解法
来源:互联网 发布:深圳市华梦汽车网络 编辑:程序博客网 时间:2024/04/29 15:14
网上有个题目,将字符串以单词为单位逆序,例如:"I am a Student" 要变成"Student a am I"
解法大致为:先将字符串整体逆序第一个字符和最后一个交换,第二个与倒数第二个交换,一直到完成整个串逆序,
即”tnedutS a ma I“;然后单个单词逆序。
下面是我的解法,对于字符串中间隔多个空格和末尾多个空格都可以正常处理。
#include <stdio.h>#include <string>using namespace std;int main(int argc, char * argv[]) { char s[]="I am a Student"; int len=0,i; while(*(s+len) != '\0') len++; printf("len=%d\n",len); //逆转整个字符串 即s[i]与s[len-i-1]互换 for(i=0;i<len/2;i++) { int t=s[i]; s[i]=s[len-i-1]; s[len-i-1]=t; } printf("reserve whole string=[%s]\n",s); int p = 0; //记录总体移动长度 int ilen = 0; //单个word的长度 while(p != len) { ilen = 0; while(*(s+p+ilen) != ' ' && *(s+p+ilen) != '\0' ) ilen++; for(i=0;i<ilen/2;i++) { int t = s[p+i]; s[p+i]=s[p+ilen-i-1]; s[p+ilen-i-1]=t; } p+=ilen; //p移动到下个单词位置 while( *(s+p) == ' ') p++; } printf("result string=[%s]\n",s); return 0;}
编译运行结果:
[@cubjdev1 myfile]$ g++ string_test.cpp -o string_test
[@cubjdev1 myfile]$ ./string_test
len=16
reserve whole string=[tnedutS a ma I]
result string=[Student a am I]
- 将字符串以单词为单位逆序"I am a Student" 解法
- C 语言字符串 将一行字符串I am a student。逆序输出student。a am I;
- I am a student 单词逆序输出
- 将字符串student a am i反转为 i am a student
- C语言:如何将字符串“student a am I”转换为“I am a student”
- 编写一个C函数,将”I am a student. ”倒置为”student. a am I”,及将句子中的单词位置倒置,而不改变单词内部结构.
- C 反转字符串中的单词 "student a am i " --> "i am a student "
- 笔试题5. 将student a am i转化为i am a student
- 【C语言】将字符串顺序翻转,如: I am a student 转成:student a am I
- 将字符串"I am a student"倒置变成"student a am I"的思想
- 字符串“student a am i”转换为"i im a student"
- 将一个英文语句以单词为单位逆序排放。
- 一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student"
- 将输入的字符串反序打印。例如输入“I am a student.”输出“student. a am I”。
- 带有空格的字符串逆置(如:i am a student 逆置为 student a am i)
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,没有标点符号。 例如输入“I am a student”,则输出“student a
- 翻转字符串i am a student
- 翻转字符串 "student a am i"
- 不要向这个世界认输,因为你还有牛逼的梦想(转)
- ubuntu下为php安装sqlite模块
- POJ 2516 Minimum Cost
- 细菌觅食优化算法迁徙操作的代码
- Java学习系列(十七)Java面向对象之开发聊天工具
- 将字符串以单词为单位逆序"I am a Student" 解法
- php array_unshift()修改数组key
- 工作中发现的问题20131120
- hibernate 二级缓存配置
- 蓝桥杯全国软件大赛试题——java最小距离问题
- PHP识别电脑还是手机访问网站
- 学习笔记:泛型工厂
- Dreamweaver8安装后无法启动
- 工作问题记录20131125