剑指offer 04_替换字符串中的空格
#include <stdio.h>
void ReplaceBlank(char string[],int length){
if(string == NULL || length == 0){
return;
}
int originalLength = 0;//
int blankCount = 0;
while(string[originalLength] != '\0'){
if(string[originalLength] == ' '){
++blankCount;
}
++originalLength;
}
int newLength = originalLength + blankCount * 2;
if(newLength > length){//not enough space
return;
}
int indexFirst = originalLength;
int indexSecond = newLength;
while(indexFirst>=0 && indexSecond>indexFirst){
if(string[indexFirst] == ' '){
string[indexSecond--] = '0';
string[indexSecond--] = '2';
string[indexSecond--] = '%';
}else{
string[indexSecond--] = string[indexFirst];
}
--indexFirst;
}
}
int main(){
char str[50] = "We are happy.";
printf("str = %s\n",str);
ReplaceBlank(str,50);
printf("str = %s\n\n",str);
char str1[50] = "Wearehappy.";
printf("str1 = %s\n",str1);
ReplaceBlank(str1,50);
printf("str1 = %s\n\n",str1);
char str2[50] = " We are happy.";
printf("str2 = %s\n",str2);
ReplaceBlank(str2,50);
printf("str2 = %s\n\n",str2);
char str3[50] = "";
printf("str3 = %s\n",str3);
ReplaceBlank(str3,50);
printf("str3 = %s\n\n",str3);
return 0;
}
结果
str = We are happy.
str = We%20are%20happy. str1 = Wearehappy.
str1 = Wearehappy. str2 = We are happy.
str2 = %%%20We%20are%20happy. str3 =
str3 =
剑指offer 04_替换字符串中的空格的更多相关文章
- 【剑指offer】替换字符串中的空格
转载请注明出处:http://blog.csdn.net/ns_code/article/details/25002199 剑指offer上的第四道题目,在九度OJ上測试通过,但还是有些问题.由于是用 ...
- 【剑指offer】将字符串中的空格替换成"%20"
#include <iostream> #include <string> using namespace std; char *ReplaceSpace(char *str, ...
- 剑指Offer 找出字符串中第一个只出现一次的字符
题目描述 找出字符串中第一个只出现一次的字符 如果无此字符 请输出'.' 输入描述: 输入一串字符,由小写字母组成 输出描述: 输出一个字符 输入例子: asdfasdfo 输出例子: o 思路:数组 ...
- 《剑指offer》-找到字符串中第一个只出现一个的字符
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...
- 代码随想录第八天 |344.反转字符串 、541. 反转字符串II、剑指Offer 05.替换空格 、151.翻转字符串里的单词 、剑指Offer58-II.左旋转字符串
第一题344.反转字符串 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这 ...
- 《剑指offer》替换空格
本题来自<剑指offer> 替换空格 题目: 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are% ...
- 剑指 Offer 44. 数字序列中某一位的数字 + 找规律 + 数位
剑指 Offer 44. 数字序列中某一位的数字 Offer_44 题目描述 题解分析 java代码 package com.walegarrett.offer; /** * @Author Wale ...
- 菜鸟刷题路:剑指 Offer 05. 替换空格
剑指 Offer 05. 替换空格 class Solution { public String replaceSpace(String s) { StringBuilder str = new St ...
- 力扣 - 剑指 Offer 67. 把字符串转换成整数
题目 剑指 Offer 67. 把字符串转换成整数 思路1 根据题意,要解决这题,首先要判断的条件有: 不包括首位空格 第一位必须为:+.-.数字三者其一,否则不合法 数字必须连续的,如果遇到非数字, ...
随机推荐
- C# 实现WinForm窗口最小化到系统托盘代码
1.如果不想让程序在任务栏中显示,请把窗体的属性ShowInTaskbar设置为false; 2.如果想让程序启动时就最小化,请设置窗体的属性WindowState设置为Minimized.(Mini ...
- python3 使用pymysql
#! /usr/bin/env python3 # coding = utf-8 import random import pymysql # 连接数据库函数 def connDB(data): co ...
- mysql 授予远程连接直接访问
不通过ssh通道,mysql 授予远程连接直接访问 语句 GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '!DSJdg!' WITH GR ...
- JavaScript中的数组和对象 增删遍
由于 JavaScript 的语言特性,我们可以向通用对象动态添加和删除属性.所以 Object 也可以看成是 JS 的一种特殊的集合. 虽然这个集合的 key 只能是 String 类型,不像 Ja ...
- XXX.APP已损坏,打不开.你应该将它移到废纸篓
XXX.APP已损坏,打不开.你应该将它移到废纸篓 MACOS 10.12 SIERRA 如遇:「xxx.app已损坏,打不开.你应该将它移到废纸篓」,并非你安装的软件已损坏,而是Mac系统的安全设置 ...
- @angular/cli项目构建--modal
环境准备: cnpm install ngx-bootstrap-modal --save-dev impoerts: [BootstrapModalModule.forRoot({container ...
- hdu-1863-畅通工程(kruskal算法模板)
题目链接 /* Name:hdu-1863-畅通工程 Copyright: Author: Date: 2018/4/18 10:19:03 Description: kruskal算法 */ #i ...
- 【SQL查询】查询结果分组_Group
1. 概述 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组 示例 2. group by的简单操作 3. Group By中Select指定的字段限制 select指定的 ...
- uva10780(分解质因数)
可以直接用高精度来暴力求. 也可以不用高精度: 把m分解质因数,记录每个因数和它的次数.然后计算每个因数在n的阶乘里出现了多少次,再把这个次数除以它在m中的次数,就是可能的k值.取最小的k. #inc ...
- nodejs 设置跨域访问
app.use(logger('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); a ...