把字符串中的空格替换为"%20"
这个需要注意的是字符串的结尾最后一个字符为'\0',并不是空字符,复制时要一块复制,算法思想就是先计算出字符串中总的空格数,然后
重新计算字符串的长度,由于"%20"为3个字符,比原来多2个,所以,字符串长度是原来字符串长度加上空格字符总数×2,就是新的字符串的长度。
代码如下:
#include <iostream>
#include <cstdlib>
using namespace std; void strReplace(char str[],int length)
{
if(str==NULL||length<0)
exit(-1);
int blank=0;
int nLength;
for(int i=0;i<length;i++)
{ if(str[i]==' ')
blank++;
}
nLength=length+blank*2;
for(int j=length;j>=0;j--)
{
if(str[j]!=' ')
{
str[nLength]=str[j];
nLength--;
}
else
{
str[nLength--]='0';
str[nLength--]='2';
str[nLength--]='%';
} } }
int main()
{
char str[13]="we are happy";
int length=13;
cout<<"before replace: ";
cout<<str<<endl;
strReplace(str,13);
cout<<"after replace: ";
cout<<str<<endl;
return 0; }
运行结果:
把字符串中的空格替换为"%20"的更多相关文章
- 将一个字符串中的空格替换成“%20”(C、Python)
将一个字符串中的空格替换成“%20” C语言: /* ----------------------------------- 通过函数调用,传地址来操作字符串 1.先计算出替换后的字符串的长度 2.从 ...
- 《剑指offer面试题4》替换空格——实现函数把字符串中每个空格替换成“%20”
思路: 例如把we are happy这个字符串中所有空格替换成"%20",最直接的做法是从头开始扫苗,遇到空格就替换,并且把空格后面的字符都顺序后移.复杂度O(n^2). 重要思 ...
- 符号替换问题:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
public class Solution { public String replaceSpace(StringBuffer str) { String str1=str.toString(); c ...
- 编程练习 将一个字符串中的空格替换为 "%20"
重点:字符串和元组一样, 是不可变对象. 所以将创建一个新的字符串对象,将改变后的字符加入到该新的对象里. 两种方法: 1.python的 replace函数 2.判断修改 def replace(a ...
- 替换空格-请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
class Solution { public: void replaceSpace(char *str,int length) { char *tmp; ; int i; ;i<length; ...
- 【剑指offer】将字符串中的空格替换成"%20"
#include <iostream> #include <string> using namespace std; char *ReplaceSpace(char *str, ...
- 剑指offer2:C++实现的替换空格(字符中的空格替换为“%20”)
1. 题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 2. 思路和方法: 2.1 ...
- 【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”
//字符串替换空格:实现一个函数,把字符串里的空格替换成"%20" #include <stdio.h> #include <assert.h> void ...
- 字符串中的空格替换问题(Java版)
解决方式一:时间复杂度为O(n^2) 解决方式二:时间复杂度为O(n) 代码实现: package string; public class SpaceStringReplace2 { //len为数 ...
随机推荐
- Jquery 简明介绍
http://www.cnblogs.com/luotianshuai/p/5196997.html http://www.cnblogs.com/liujianzuo888/articles/568 ...
- 22. Generate Parentheses(回溯)
Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...
- Mail.Ru Cup 2018 Round 2 Solution
A. Metro Solved. 题意: 有两条铁轨,都是单向的,一条是从左往右,一条是从右往左,Bob要从第一条轨道的第一个位置出发,Alice的位置处于第s个位置,有火车会行驶在铁轨上,一共有n个 ...
- MapReduce 过程详解 (用WordCount作为例子)
本文转自 http://www.cnblogs.com/npumenglei/ .... 先创建两个文本文件, 作为我们例子的输入: File 1 内容: My name is Tony My com ...
- springcloud8----feign-with-hystrix
Feign也可以使用Hystrix: package com.itmuch.cloud; import org.springframework.boot.SpringApplication; impo ...
- Java数据结构和算法总结-字符串相关高频面试题算法
前言:周末闲来无事,看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家.什么字符串在算法中有多重要之类的大路边上的客套话就不多说了,直接上笔 ...
- c++第十九天
p109~p110: C风格字符串 特点: 1.不方便,不安全,尽量不使用. 2.必须以 '\0'结束.(只有这样才能使用C风格字符串函数) 3.一般利用指针操作这些字符. 4.可以用字符串字面值来初 ...
- RESTful源码学习笔记之RPC和Restful深入理解
以下资料搜集自网络 0x00 RPC RPC 即远程过程调用(Remote Procedure Call Protocol,简称RPC),像调用本地服务(方法)一样调用服务器的服务(方法).通常的实现 ...
- Ubuntu安装 Spark2.3.0 报错原因及解决
Ubuntu 安装Spark出现的问题及解决 最近在搭建Hadoop集群环境和Spark集群环境,出现的问题可能不太复杂,纯粹记录安装步骤和问题解决办法.集群环境使用的是(2台)阿里云主机,操作系统是 ...
- Java序列化(Serialization)
关于Java的序列化的文章在网上已经够多了,在这里写关于Java序列化的文章是对自己关于这方面的的一种总结,结合以前的开发经验与网上的资料,写了这篇文章,对自己是有着巩固记忆的作用,也希望能够对大家有 ...