翻转字符串—翻转单词字符串
2018-03-01 21:25
316 查看
将一句话里面的单词进行倒置,标点符号不倒换。比如一句话“i come from china.”倒换后变成“china. from come i”。
解析:解决该问题可以分为两步,第一步全盘置换为“ .anihc morf emoc i”,第二部对每个单词进行逐步翻转,如果不是空格,则开始翻转单词。
具体代码如下:#include<stdio.h>
#include<iostream>
int main(void)
{
int i=0,j=0,flag=0,begain,end;
char str[]="i am from china.",temp;
j=strlen(str)-1;
printf(" string = %s\n",str);
while(j>i)
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
j--;
i++;
}
printf(" string = %s\n",str);
i=0;
while(str[i])
{
if(str[i]!=' ')
{
begain=i;
while(str[i]!=' ')
{
i++;
}
i=i-1;
end=i;
}
while(end>begain)
{
temp=str[begain];
str[begain]=str[end];
str[end]=temp;
end--;
begain++;
}
i++;
}
printf(" string = %s\n",str);
return 0;
}
解析:解决该问题可以分为两步,第一步全盘置换为“ .anihc morf emoc i”,第二部对每个单词进行逐步翻转,如果不是空格,则开始翻转单词。
具体代码如下:#include<stdio.h>
#include<iostream>
int main(void)
{
int i=0,j=0,flag=0,begain,end;
char str[]="i am from china.",temp;
j=strlen(str)-1;
printf(" string = %s\n",str);
while(j>i)
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
j--;
i++;
}
printf(" string = %s\n",str);
i=0;
while(str[i])
{
if(str[i]!=' ')
{
begain=i;
while(str[i]!=' ')
{
i++;
}
i=i-1;
end=i;
}
while(end>begain)
{
temp=str[begain];
str[begain]=str[end];
str[end]=temp;
end--;
begain++;
}
i++;
}
printf(" string = %s\n",str);
return 0;
}
相关文章推荐
- C/C++面试之算法系列--以单词为最小单位翻转字符串
- 每日一题--翻转单词顺序||左旋转字符串
- JAVA用标准库自己写一个字符串翻转方法,翻转字符串中字母非单词
- 42.翻转单词顺序VS左旋转字符串
- 翻转单词顺序列(字符串)
- code[vs] - 1205 单词翻转 - 字符串
- 面试题42:翻转单词顺序VS左旋转字符串
- 输入一行字符串,把字符串翻转[单词顺序不变]
- 面试题46:翻转单词顺序VS左旋转字符串
- 【剑指offer】6.3知识迁移能力——面试题42:翻转单词顺序VS左旋转字符串
- [LeetCode] 557. Reverse Words in a String III 翻转字符串中的单词 III
- 【剑指offer系列】 翻转单词 VS 左旋字符串___42
- 剑指offer 42. 翻转单词顺序VS左旋转字符串
- 翻转字符串中的单词
- 翻转单词顺序&左旋转字符串
- 字符串翻转和单词倒转
- python 字符串翻转| 单词翻转
- 剑指offer 面试题42 翻转单词顺序 VS 左旋转字符串
- 以单词为单位对字符串进行翻转(用C#编写,但不用其中的库函数)
- 翻转句子中单词的顺序和字符串的旋转操作 c++面试题