C语言字符串替换空格实例详解
目录
- 一、题目描述
- 二、思路分析
- 三、整体代码
- 总结
一、题目描述
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:0 <= s 的长度 <= 10000
二、思路分析
思路
C语言的字符串无法改变大小,所以无法直接在原来的字符串上操作。于是我们先统计空格个数,算出替换后的字符串的大小,并申请一块新内存。(注意要多申请一个byte,放字符串结尾符’\0’)。再次遍历这个字符串,将空格替换成%20。
算法流程:首先得到字符串s的长度
遍历这个字符串,统计空格个数
计算新的字符串需要的空间,并申请一块新内存
遍历字符串s,如果没有空格则进行正常赋值。如果碰到空格,则在新字符串对应的三个位置放上%20
三、整体代码
整体代码如下
char* replaceSpace(char* s){ int count = 0; int len = 0; while(s[len] != '\0'){ len++; } int i = 0; for(i = 0; i < len; i++){ if(s[i] == ' '){ count++; } } char* str = (char*)malloc(sizeof(char)*(len + 1 + count * 2)); int j = 0; for(i = 0; i < len; i++, j++){ str[j] = s[i]; if(s[i] == ' '){ str[j++] = '%'; str[j++] = '2'; str[j] = '0'; } } str[j] = '\0'; return str; }
运行,测试通过
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!
相关推荐
-
C语言字符串函数入门
目录 实现字符串库函数功能 1.strlen函数 2.strcmp函数 3.strcpy函数 4.strcat函数 5.strupr函数 6.strlwr函数 总结 实现字符串库函数功能 有些时候我们可能会被限制无法使用库函数,这个时候我们需要编写自己的库函数.但了解了字符串库函数的功能之后,想要实现并不困难,今天我们用数组和循环来简单实现几个字符串库函数的功能. 1.strlen函数 strlen函数使用来求字符串长度的,遇到\0就会停止,并返回字符串的长度,接下来根据这个特性来编写一下我们自
-
C语言面试C++字符串替换空格示例
字符串替换空格(多换一) 面试题: 面试题需要考虑规范,算法,代码,可移植性,还有鲁棒性等,考虑了这些之后再下手就会很舒服 首先我看到是%20替换空格,万一面试官说换其他的然后你很快的改了出来这也是一种本事,所以函数是必不可缺的,也最好有人机交互的样子,反正他有没有说写死. 代码 这里时间复杂度也是O(n),鲁棒性也不错,基本是可以拿下offer的代码 #include<stdio.h> #include<assert.h> #include<string.h> cha
-
Java 替换空格
请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. public class Solution { public String replaceSpace(StringBuffer str) { for(int k=0;k<str.length();k++) { char index=str.charAt(k); if(index==' ') { str.replace(k,k+
-
c语言求两个字符串的交集
目录 一.main()函数 二.fun1()函数 三.fun2()函数 注意; 总结 求两个字符串的交集,看似简单,实则需要考虑的细节很多. 我的思路: 1.将两个字符串简化,将里面重复的字母减少为一个. 2.拼接两个字符串,借助循环把重复出现两次的字符找出来. 有了思路开始写代码. 一.main()函数 思路: 1.定义两个储存字符串的数组tt[M],pp[M] 2.定义指针*p接收fun2() 返回值,输出交集 3.输入两个字符串(此处注意越界问题) 4.调用函数 5.输出交集 #inclu
-
postgresql 替换空格 换行和回车的操作
我就废话不多说了,大家还是直接看代码吧~ UPDATE table set name = trim(name);//用来删除数据前后的空格 UPDATE table set name = rtrim(name);//用来删除数据前的空格 UPDATE table set name = ltrim(name);//用来删除数据后的空格 UPDATE table set name = REPLACE(name,' ','');//用来删除数据中的空格 UPDATE table set name =R
-
C语言字符串替换空格实例详解
目录 一.题目描述 二.思路分析 三.整体代码 总结 一.题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例: 输入:s = "We are happy." 输出:"We%20are%20happy." 限制:0 <= s 的长度 <= 10000 二.思路分析 思路 C语言的字符串无法改变大小,所以无法直接在原来的字符串上操作.于是我们先统计空格个数,算出替换后的字符串的大小,并申请一块新内存.(注意要多申
-
Linux C字符串替换函数实例详解
Linux C字符串替换函数实例详解 最近学习linux 的基础编程知识,字符串替换函数,在网上找下资料,觉得这篇文章写的不错,记录下来,和大家分享一下: 实例代码: #include <stdio.h> #include <string.h> #include <stdlib.h> /** * * @author: cnscn@163.com * @reference: lovesnow1314@http://community.csdn.net/Expert/Top
-
Kotlin语言编程Regex正则表达式实例详解
目录 前言 Regex 构造函数 常用正则表达方法 示例展示 1.containsMatchIn(input: CharSequence) 包含指定字符串 2.matches(input: CharSequence) 匹配字符串 3.find(input: CharSequence, startIndex: Int = 0) 查找字符串,并返回第一次出现 4.findAll(input: CharSequence, startIndex: Int = 0) 查找字符串,返回所有出现的次数 5.r
-
python 遍历字符串(含汉字)实例详解
python 遍历字符串(含汉字)实例详解 s = "中国china" for j in s: print j 首先一个,你这个'a'是什么编码?可能不是你所想的gbk >>> a='中国' >>> a 这样试试看,如果出来是6个字(word),说明是utf-8,如果是4个字,说明gbk. 另外,不管是utf-8还是gbk,都不能这样遍历,因为这里它会一个字一个字拿出来.虚拟机把a当成一个长度为len(a)的字符串了. 接下来是遍历问题. Linux
-
Java 生成随机字符串数组的实例详解
Java 生成随机字符串数组的实例详解 利用Collections.sort()方法对泛型为String的List 进行排序.具体要求: 1.创建完List<String>之后,往其中添加十条随机字符串 2.每条字符串的长度为10以内的随机整数 3.每条字符串的每个字符都为随机生成的字符,字符可以重叠 4.每条随机字符串不可重复 将涉及到的知识有: String.StringBuffer.ListArray.泛型.Collections.sort.foreach.Random等相关知识,算是
-
java 字符串截取的实例详解
java 字符串截取的实例详解 题目 在java中,字符串"abcd"与字符串"ab你好"的长度是一样,都是四个字符. 但对应的字节数不同,一个汉字占两个字节. 定义一个方法,按照指定的字节数来取子串. 如:对于"ab你好",如果取三个字节,那么子串就是ab与"你"字的半个,那么半个就要舍弃. 如果取四个字节就是"ab你",取五个字节还是"ab你". 仅考虑GBK和utf-8编码 实例代
-
java 字符串反转的实例详解
java 字符串反转的实例详解 1.new StringBuffer("abcde").reverse().toString(); 2.通过char数组进行转换, 代码如下 package com.test.reverse; public class TestReverse { public static void main(String[] args) { // 声明任意字符串 String str = "abcde"; //将字符串转换成char[] char[
-
C/C++语言宏定义使用实例详解
C/C++语言宏定义使用实例详解 1. #ifndef 防止头文件重定义 在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成 一个可执行文件时,就会出现大量"重定义"的错误.在头文件中实用#ifndef #define #endif能避免头文件的重定义. 方法:例如要编写头文件test.h 在头文件开头写上两行: #ifndef TEST_H #define TEST_H //一般是文件名的大写 头文件结尾写上一行: #endif 这样一个工程文件里同时
-
Python3.5字符串常用操作实例详解
本文实例总结了Python3.5字符串常用操作.分享给大家供大家参考,具体如下: 一.输入与输出 #输入与输出 str = input("请输入任意字符:") print(type(str)) #input获取的数据类型皆为字符串 print(str) 运行结果: 请输入任意字符:abc <class 'str'> abc #格式化输出 name = "liu" age = 18 print("My name is %s, and I'm %d
-
GO语言数组和切片实例详解
本文实例讲述了GO语言数组和切片的用法.分享给大家供大家参考.具体分析如下: 一.数组 与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列. (1)数组的创建. 数组有3种创建方式:[length]Type .[N]Type{value1, value2, ... , valueN}.[...]Type{value1, value2, ... , valueN} 如下: 复制代码 代码如下: func test5() { var iarray1 [5]int32
随机推荐
- Django中使用jquery的ajax进行数据交互的实例代码
- Python字符串、元组、列表、字典互相转换的方法
- jQuery中的Deferred和promise 的区别
- JSON.parse()和JSON.stringify()使用介绍
- 微信小程序 input输入框控件详解及实例(多种示例)
- 自动完成的搜索框javascript实现
- iOS开发之tableView实现左滑删除功能
- iOS实现实时检测网络状态的示例代码
- 解析Swift中的泛型支持与使用
- JavaScript获取XML数据附示例截图
- PHP7.0版本备注
- JavaScript阻止浏览器返回按钮的方法
- Python中防止sql注入的方法详解
- 主键与聚集索引
- javascript 动态调整图片尺寸实现代码
- jquery.form.js用法之清空form的方法
- c#读取文件详谈
- java编程常用技术(推荐)
- 魔兽自定义mod制作全攻略第一期
- Docker容器与主机间的文件传输方法(复制/上传/下载)