【剑指 Offer】05,替换字符创中的空格;难度等级:简单。易错点:C++中 char 和 string 类型的转换

news2024/9/22 15:31:37

【剑指 Offer】05,替换字符创中的空格;难度等级:简单。

文章目录

    • 一、题目
    • 二、题目背景
    • 三、我的解答
    • 四、易错点
    • 五、知识点:char 和 string 类型的转换

一、题目

在这里插入图片描述

二、题目背景

在网络编程中,如果 URL 参数中含有特殊字符,如空格、#等,则可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转换成服务器可以识别的字符。

转换的规则是在%后面跟上ASCII码的两位十六进制的表示,比如:

空格 的ASCI码是32,即十六进制的0x20,因此空格被替换成"%20"
'#'的ASCII码为35,即十六进制的0x23,它在URI中被替换为"%23"

三、我的解答

基础答案:

class Solution {
public:
    string replaceSpace(string s) {
        string s_new;
        for(auto a:s){
            if(a==' ')
                s_new+="%20";
            else
                s_new+=a;
        }
        return s_new; 
    }
};

进阶语法(使用三目运算符替换 if - else 语句)

class Solution {
public:
    string replaceSpace(string s) {
        string s_new;
        for(auto iter:s){
            string iter_str(1,iter);
            s_new+=(iter==' ') ? "%20":iter_str;
        }
        return s_new; 
    }
};

执行结果:

执行用时:0 ms, 在所有 C++ 提交中击败了 100.00% 的用户
内存消耗:6 MB, 在所有 C++ 提交中击败了 81.92% 的用户

四、易错点

在进阶语法中,直接写成下面的格式会编译报错:

class Solution {
public:
    string replaceSpace(string s) {
        string s_new;
        for(auto iter:s)
            s_new+=(iter==' ') ? "%20":iter;
        return s_new; 
    }
};

报错大意是 “%20” 是 string 类型 ,而 iter 是 char 类型,二者不一致。因此需要将 iter 转化为 string 类型。

五、知识点:char 和 string 类型的转换

直接使用 string(iter) 是错误的,因为 string类 没有 string( char c) 这样的构造函数。正确的构造函数是:

string(size_t n, char c);    // 使用 n 个字符 'c' 初始化string对象

所以我们使用 string iter_str (1, iter) 将 char 类型的 iter 转换为 string 类型的 iter_str

还有其他几种将 char 转换为 string 的方法可参考博客 c++转换char为string的几种方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/511133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

消息推送平台的实时数仓?!flink消费kafka消息入到hive

大家好,3y啊。好些天没更新了,并没有偷懒,只不过一直在安装环境,差点都想放弃了。 上一次比较大的更新是做了austin的预览地址,把企业微信的应用和机器人消息各种的消息类型和功能给完善了。上一篇文章也提到了&#…

windows安装Anaconda

Anacond是什么? 和Python有啥关系? 1、Anacond 是一个python的发行版,包括了python和很多常见的软件库, 和一个包管理器conda。常见的科学计算类的库都包含在里面了,使得安装比常规python安装要容易。 2、Anaconda是专注于数据分…

分布式系统概念和设计——时间和全局状态(分布式系统中的时间问题)

分布式系统概念和设计 时间和全局状态 全局物理时间的缺乏使我们很难查明分布式程序的执行时状态。 我们经常需要知道当进程B处在某种状态依赖进程是什么状态,但不能通过依靠物理时钟理解一个同一个时刻到底是什么情况。 维护分布数据一致性算法检查发送给服务器的…

数学(三) -- LC[1010][1015] 可被 K 整除的最小整数

1 可被 K 整除的最小整数 1.1 题目描述 题目链接:https://leetcode.cn/problems/smallest-integer-divisible-by-k/description/ 1.2 思路分析 模运算 如果让你计算 1234 ⋅ 6789 1234 \cdot 6789 1234⋅6789 的个位数,你会如何计算? 由于…

c高级day2

#include <stdio.h> #include <stdlib.h> #include <string.h>int arrMAX_1(void *p,int n,int m,int x,int y); int arrMAX_2(void *p,int n,int m,int x,int y); int main(int argc, const char *argv[]) {int n0,m0;printf("请输入行数i 列数j\n&quo…

Baumer工业相机堡盟工业相机如何进行多个工业相机IP地址配置

Baumer工业相机堡盟工业相机如何进行多个工业相机IP地址配置 Baumer工业相机Baumer工业相机进行多相机IP配置的技术背景Baumer工业相机如何进行多相机IP配置1.配置Baumer工业相机连接的PC端IP地址2.配置Baumer工业相机的IP地址 Baumer工业相机 Baumer工业相机堡盟相机是一种高…

R 中的探索性相关分析

动动发财的小手&#xff0c;点个赞吧&#xff01; 本文[1] 相关分析是探索两个或多个变量之间关系的最基本和最基础的方法之一。您可能已经在某个时候使用 R 执行过相关分析&#xff0c;它可能看起来像这样&#xff1a; cor_results <- cor.test(my_data$x, my_data$y, …

手机上调试pc端电脑上的项目

文章目录 前言1、window r 打开电脑命令窗口并输入cmd点击确定或者敲击回车键2、在cmd命令行面板上输入ipconfig获取本电脑的ip地址3、在手机浏览器中输入http://192.168.XX.XX:8080 即可 前言 手机上调试电脑运行的项目的前提条件是手机和电脑公用一个局域网&#xff08;也就…

APP 性能优化你掌握的怎么样?简单聊聊?

产品性能是每个技术团队比较关心的一件事&#xff0c;不管是产品上线前到上线后&#xff0c;都需要对产品进行性能监控和优化&#xff0c;如果产品在运行过程中出现了问题&#xff0c;是很影响用户的体验感受。 所以在一些大厂技术团队中&#xff0c;是非常看重个人性能优化的…

面向开发人员的 ChatGPT 提示词教程中文版

面向开发人员的 ChatGPT 提示词教程中文版 1. 指南1-1. 提示的指南1-2. 配置1-3. 提示语原则原则 1: 写出清晰而具体的指示技巧 1: 使用分隔符来清楚地表明输入的不同部分技巧 2: 要求提供结构化的输出技巧 3: 要求模型检查条件是否得到满足技巧 4: "少许样本"提示 原…

为你推荐一款最好用的免费截图工具-Snipaste,截图高清、智能模糊还支持滚动长截图!!!

写文章经常需要插入截图&#xff0c; 但是常常很难有顺手的截图工具&#xff0c; 常见的难题是&#xff1a; 很难滚动长屏截图&#xff0c; 截图中马赛克处理很麻烦&#xff0c; 输出的截图图像质量差。 经过大量的工具使用对比&#xff0c; 这里推荐一个最好用的截图工具。 Sn…

Fotran学习:chapter8函数

1.子程序(subrountine)的使用 把常常用于使用、具有特定功能的程序代码独立出来&#xff0c;封装程子程序&#xff0c;以后调用使用call即可。 program chapter4_exercise !主程序implicit nonecall sub1()call sub2()pauseend program chapter4_exercisesubroutine sub1() !子…

产品经理制,互联网公司发扬光大的

产品经理制&#xff0c;在互联网公司发扬光大 张小龙被称作&#xff1a;七星产品经理 其实&#xff0c;中小企业老板基本是首席产品经理 趣讲大白话&#xff1a;像带孩子一样做产品 【趣讲信息科技160期】 **************************** 产品经理制核心问题解决的是&#xff1a…

STM32F4_随机数发生器(RNG)

目录 1. 随机数发生器RNG是什么 2. RNG随机发生器框图 3. 运行RNG 4. RNG寄存器 4.1 RNG控制寄存器&#xff1a;RNG_CR 4.2 RNG状态寄存器&#xff1a;RNG_SR 4.3 RNG数据寄存器&#xff1a;RNG_DR 5. 库函数配置随机数发生器 6. 实验程序 6.1 main.c 6.2 RNG.c 6.…

植物奶站上风口

不知不觉间&#xff0c;植物奶无处不在。逛街&#xff0c;便利店里有燕麦奶、椰奶、豆奶&#xff0c;星巴克、肯德基有燕麦拿铁&#xff1b;打开小红书&#xff0c;有人做各种植物奶产品的测评结果&#xff0c;有人分享优质植物奶的自制方法…… 这场“风”并非空穴而来。 一…

软件工程开发文档写作教程(07)—招投标文件写作规范

本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl本文参考资料&#xff1a;电子工业出版社《软件文档写作教程》 马平&#xff0c;黄冬梅编著 招投标文件概述 国内的软件项目招投标文件的写作规则并不存在行业标准。许多大型企业的信息…

面向开发人员的 ChatGPT 提示词教程 - ChatGPT Prompt Engineering for Developers

面向开发人员的 ChatGPT 提示词教程 - ChatGPT Prompt Engineering for Developers 1. 指南(原文: Guidelines)1-1. 提示的指南(原文: Guidelines for Prompting)1-2. 配置1-3. 提示语原则(原文: Prompting Principles)原则 1: 写出清晰而具体的指示(原文: Write clear and spe…

【近期解决的小问题】

文章目录 写在前面1. Win10中USB转串口设备安装完成驱动显示感叹号&#xff08;USB不能用&#xff09;背景尝试过的方法其他解决方法 2. 安装Win7虚拟机“缺少所需的CD/DVD驱动器设备驱动程序”背景尝试过的方法 3. WMware安装Kali Linux后黑屏左上角光标闪烁背景尝试过的方法 …

Java设计模式 12-模版模式

模板模式 一、豆浆制作问题 编写制作豆浆的程序&#xff0c;说明如下: 1)制作豆浆的流程 选材—>添加配料—>浸泡—>放到豆浆机打碎 2)通过添加不同的配料&#xff0c;可以制作出不同口味的豆浆 3)选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一…

关于使用SSM框架搭建的项目的运行方法

目录 运行环境配置 1、安装 IDEA 开发工具 中文版设置 JDK直接下载 2、安装 MYSQL 数据库 2.1 下载安装 2.2 配置环境变量 2.4 安装 MySQL 2.4 进入 MySQL 2.5 常见问题 3、安装Tomcat 4、IDEA配置MYSQL 4.1、常见错误 5、IDEA配置TOMCAT 5.1、常见报错 一 运行环…