字符串的逆序 以及字符串的转换
来源:互联网 发布:sql select if 编辑:程序博客网 时间:2024/06/09 14:35
首先以一个题目为切入点,题意如下:
给定一个字符串str,请在单词间做逆序调整,如“pig loves dog”逆序成“dog loves pig”;如“I'm a student.”逆序成“students. a I'm”。
对于这个题目我们的思想就是装换。第一步将全部的字符串前后交换位置,第二部将每个单词前后交换位置。以“pig loves dog”为例,现将之转换成“god sevol gip”;然后再将转换后的字符串里的单词前后转换就成为“dog loves pig”.代码如下:
#include <iostream>#include<string.h>using namespace std;string reverse_string(string word){ int length=word.size(); // cout<<length; int i,j; char tmpl; for(i=0,j=length-1;i<j;++i,--j) { tmpl=word[i]; word[i]=word[j]; word[j]=tmpl; } return word;}int main(){ string input,result; int i,j,length; getline(cin,input); length=input.size(); char temp[length]; input=reverse_string(input); for(i=0;i<length;++i) { j=0; memset(temp,0,length); //清空 while(input[i]!=' ' && input[i]!='\0') { temp[j++]=input[i++]; } result=temp; //可以直接将char数组 赋值给string result=reverse_string(result); cout<<result<<" "; } return 0;}结果如下:
编程中遇到的问题:
在编程中对于字符串的转换问题有点阻挠。 最开始的时候定义了两个string;
string input,temp;目的是使用input里面的单词赋值到temp:
int j=0;
while(input[i]!=' ' && input[i]!='\0') { temp[j++]=input[i++]; }但是由于单词的长度不是固定的,而string类型的temp其长度不能随着单词的变化而变化,所以我们改用char数组作为中间值:
char temp[length];
在得到单词之后,在将单词赋值给一个string类型的result,使用result作为参数进行单词转换并接收函数传回的string:
result=temp; //可以直接将char数组 赋值给string result=reverse_string(result);注意在将input单词赋值给char的时候需要将其清空:
memset(temp,0,length);再则我发现将char数组赋值给string很容易,反之则比较麻烦。
0 0
- 字符串的逆序 以及字符串的转换
- 字符串的逆序输出
- 一个字符串的逆序
- 字符串的逆序总结
- 字符串的逆序
- 字符串的逆序排列
- String字符串的逆序
- 字符串的逆序
- 实现字符串的逆序
- 字符串的逆序输出
- 字符串的逆序
- 字符串的逆序
- 字符串的逆序
- delphi中的字符串,字符串数据,字符串指针的转换以及不同字符串格式的转换
- 字符串的单词逆序,字母不逆序
- 字符串的连接,以及字符串大小写的转换
- 各种字符串以及它们之间的转换
- 关于字符串逆序的问题
- Android开发-API指南-<manifest>
- Python配置第三方库numpy、scipy、theano
- Android应用启动优化:一种DelayLoad的实现和原理(下篇)(转载)
- GCC 基本用法
- xcode下载iOS开发文档
- 字符串的逆序 以及字符串的转换
- Windows访问Oracle数据库
- ChemDraw Prime 15中提供了哪些期刊格式?
- 病毒木马查杀实战第019篇:病毒特征码查杀之编程实现
- STS (Spring Tool Suite) 导入getting started guide提示SunCertPathBuilderException错误的解决
- Spring AOP切面基础 实现请求参数的验证
- 【MySQL】计算 TPS,QPS 的方式
- Python的hasattr、getattr
- ZOJ-3643-Keep Deleting【字符串】