博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer——替换字符串中的字符
阅读量:4214 次
发布时间:2019-05-26

本文共 793 字,大约阅读时间需要 2 分钟。

我们可以很容易替换字符串中的字符。最简单的办法莫过于使用两个数组,遇到空格便将其替换为%20,然后继续遍历第一个数组。

#include "stdafx.h"#include 
#include
using namespace std;char * replaceSpace(char *str,int length);int _tmain(int argc, _TCHAR* argv[]){
char a[]="We Are Happy"; int l=strlen(a); char *b; b=replaceSpace (a,l); cout<
<

不过我们还可以用一个字符串数组来完它。

我们先统计空格数cnt,然后估计出替换后所需的字符串数组所需的长度,即newlen=length+2*cnt
从后往前在原数组中进行替换。从后往前的好处在于不会改变未遍历过的原数组字符

void replaceSpace(char *str,int length) {
int i=0,cnt=0; //记录空格的数量 while(i
=0&&length>=0) {
if(str[length]==' ') {
str[newlen--]='0'; str[newlen--]='2'; str[newlen--]='%'; length--; } else str[newlen--]=str[length--]; } }

注意:如果要自己写算例,要写为字符串数组的形式,

即char a[]=“asdf”;这放在栈里,可以修改,如果写为
char *a=“asdf”;这是字符串常量,放在代码段,只能读取,不能修改。

转载地址:http://rndmi.baihongyu.com/

你可能感兴趣的文章
kruskal算法 求最小生成树(邻接表 无向图) C实现
查看>>
冒泡排序(bubble sort)
查看>>
插入排序(insert sort)
查看>>
希尔排序(shell sort)
查看>>
堆排序(heap sort)
查看>>
归并排序(递归版本)C实现~
查看>>
归并排序 (非递归版本) C实现~
查看>>
图的割点(简易邻接矩阵)C~
查看>>
两个变量实现交换
查看>>
求割点(邻接表无向图)C~
查看>>
求图的割边(桥)(邻接矩阵 无向图)C~
查看>>
快速排序(quick sort) C ~
查看>>
二叉树的遍历(先、中、后、层序)C实现
查看>>
判断是否是同一颗二叉树
查看>>
C语言文件操作
查看>>
简易的多组数据题模板
查看>>
解决负权边的算法(Bellman Ford )(有向图) (1)C ~
查看>>
循环链表实现约瑟夫环(C实现)~
查看>>
用数组模拟链表操作 C实现~
查看>>
Bellman Ford 的队列优化 (2) C~
查看>>