程序员面试金典: 9.1数组与字符串 4字符串中空格全部替换为"%20"
来源:互联网 发布:unity3d动画制作教程 编辑:程序博客网 时间:2024/04/30 20:58
#include <iostream>#include <stdio.h>#include <string>#include <vector>using namespace std;/*问题:编写一个方法,将字符串中的空格全部替换为“%20”。 假定该字符串尾部留有足够的控件存放新增字符,并且知道字符串的真实长度分析:先扫描字符串,计算出空格总数n,字符串长度L,由于一个空格和“%20”相差两个字符, 因此替换后的字符串总长度为=L + 2n 然后将原字符串依次从后向前拷贝至新子串对应位置输入:chao ma yan ma输出chao%20ma%20yan%ma关键:1 先扫描字符串,计算出空格总数n,字符串长度L,由于一个空格和“%20”相差两个字符, 因此替换后的字符串总长度为=L + 2n 然后将原字符串依次从后向前拷贝至新子串对应位置2 需要支持带空格的字符串,使用getline(cin , str)*/string stringReplace(string& str , const char findStr , const string& replaceStr){int pos = 0;int iCount = 0;//如果找到该字符串while( string::npos != str.find(findStr , pos)){iCount++;pos = str.find(findStr , pos) + 1;}int totalLength = str.length() + 2 * iCount;int i = totalLength - 1;int j = str.length() - 1;vector<char> str2(totalLength , 'a');for( ; j >= 0 ; ){//如果不是待查找字符if(str[j] != findStr){//这边长度还没有开启str2[i--] = str[j--];}//如果是待查找字符,则令当前为“0”else{str2[i--] = '0';str2[i--] = '2';str2[i--] = '%';j--;}}string sResult = "";vector<char>::iterator it = str2.begin();for( ; it != str2.end() ; it++ ){sResult += *it;}return sResult;}int main(int argc, char* argv[]){string str;//需要支持带空格的字符串while( getline(cin , str)){char findStr = ' ';string replaceStr = "%20";string result = stringReplace(str , findStr , replaceStr);cout << result << endl;}system("pause");return 0;}
0 0
- 程序员面试金典: 9.1数组与字符串 4字符串中空格全部替换为"%20"
- 面试4之字符串中的空格全部替换为“%20”
- 9.1数组与字符串(三)——将字符串中的空格全部替换为“%20”
- 程序员面试金典第一章:数组与字符串(4) 空格替换
- 程序员面试金典(3)字符串中空格替换为"%20"
- 将一个字符串中的空格全部替换为“%20”
- js替换字符串中所有/全部空格
- 把字符串中空格替换为"%20"
- 替换字符串中空格为%20
- 程序员面试金典:字符串--确定字符串互异、原串翻转、空格替换
- 【程序员面试金典】数组与字符串
- js替换字符串全部空格
- 字符串中空格替换为%20(算法)
- 剑指offer - 将字符串中空格替换为20%
- 编写一个方法,将字符串中的空格全部替换为“%20”
- 程序员面试金典: 9.1数组与字符串 7若M*N矩阵中某个元素为0,则将其所在行与列清零
- 程序员面试金典: 9.1数组与字符串 8判断两个字符串中一个字符串是否由另一个字符串旋转而成
- 替换空格(将字符串中的空格替换为20%)
- yii2文件上传
- Java多线程之并发协作生产者消费者设计模式
- html绝对定位和相对定位
- 电子钱包CPU卡和PSAM卡消费密钥装载分析
- keil 中如何不链接没有用到的函数
- 程序员面试金典: 9.1数组与字符串 4字符串中空格全部替换为"%20"
- springMVC源码分析--AbstractControllerUrlHandlerMapping(六)
- matlab里面如何保留小数特定位数
- android viewpager实现3d画廊效果
- Jquery cookie操作示例,写入cookie,读取cookie,删除cookie
- JavaScript 限制文本框不可输入英文单双引号
- C语言 - 比较部分字符串函数的使用
- Redis入门
- Activity返回(finish)时,另一个activity或者fragment如何刷新数据