这个需要注意的是字符串的结尾最后一个字符为'\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"的更多相关文章

  1. 将一个字符串中的空格替换成“%20”(C、Python)

    将一个字符串中的空格替换成“%20” C语言: /* ----------------------------------- 通过函数调用,传地址来操作字符串 1.先计算出替换后的字符串的长度 2.从 ...

  2. 《剑指offer面试题4》替换空格——实现函数把字符串中每个空格替换成“%20”

    思路: 例如把we are happy这个字符串中所有空格替换成"%20",最直接的做法是从头开始扫苗,遇到空格就替换,并且把空格后面的字符都顺序后移.复杂度O(n^2). 重要思 ...

  3. 符号替换问题:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

    public class Solution { public String replaceSpace(StringBuffer str) { String str1=str.toString(); c ...

  4. 编程练习 将一个字符串中的空格替换为 "%20"

    重点:字符串和元组一样, 是不可变对象. 所以将创建一个新的字符串对象,将改变后的字符加入到该新的对象里. 两种方法: 1.python的 replace函数 2.判断修改 def replace(a ...

  5. 替换空格-请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

    class Solution { public: void replaceSpace(char *str,int length) { char *tmp; ; int i; ;i<length; ...

  6. 【剑指offer】将字符串中的空格替换成"%20"

    #include <iostream> #include <string> using namespace std; char *ReplaceSpace(char *str, ...

  7. 剑指offer2:C++实现的替换空格(字符中的空格替换为“%20”)

    1. 题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 2. 思路和方法: 2.1 ...

  8. 【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”

    //字符串替换空格:实现一个函数,把字符串里的空格替换成"%20" #include <stdio.h> #include <assert.h> void ...

  9. 字符串中的空格替换问题(Java版)

    解决方式一:时间复杂度为O(n^2) 解决方式二:时间复杂度为O(n) 代码实现: package string; public class SpaceStringReplace2 { //len为数 ...

随机推荐

  1. gcc安装多个版本

    http://blog.csdn.net/chid/article/details/6251781

  2. C++ string 类

    标准c++中string类函数介绍 注意不是CString之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为 ...

  3. SpringCloud配置

    encrypt说明 名称 默 认 描述 encrypt.fail-on-error true 标记说,如果存在加密或解密错误,进程将失败. encrypt.key   对称密钥.作为一个更强大的替代方 ...

  4. eclipse如何设置编译后target目录不提交svn服务器

    eclipse设置 windows ->prefrences->team->Ignored Resource 点击Add Pattern  输入    */target/*    等 ...

  5. springcloud17---zuul-reg-exp

    package com.itmuch.cloud; import org.springframework.boot.SpringApplication; import org.springframew ...

  6. CV 两幅图像配准

    http://www.cnblogs.com/Lemon-Li/p/3504717.html 图像配准算法一般可分为: 一.基于图像灰度统计特性配准算法:二.基于图像特征配准算法:三.基于图像理解的配 ...

  7. pyDay11

    内容来自廖雪峰的官方网站. 1.杨辉三角generator: def triangles(): L = [1] while True: yield L L.append(0) L = [L[i-1] ...

  8. zabbix监控路由器

    在路由器上添加团体名: snmp-server enable traps snmp-server community XXXX rw   1.使用Getif查看路由器端口信息 getif-2.31

  9. 使用NodeJS将文件或图像上传到服务器

    原文链接:http://www.codeceo.com/article/nodejs-upload-file-to-server.html

  10. Java实现:数据结构之排序

    Java实现:数据结构之排序 0.概述 形式化定义:假设有n个记录的序列(待排序列)为{ R1, R2 , -, Rn },其相应的关键字序列为 { K1, K2, -, Kn }.找到{1,2, - ...