[C.C++] 【C/C++】将字符串中间的空格替换为"%20"

560 0
Honkers 2026-2-4 14:37:22 来自手机 | 显示全部楼层 |阅读模式

一、为什么会出现这道C原因题目

浏览器中,不会直接传输空格

在IE浏览器中,将空格 转化为‘%’+空格的ASCI码

也就是“%20”,也就有了我们这道题

二、转化的思路

(1)设置一个计数器count,用于统计空格的数量

可以利用统计的count的大小,来求出‘g’偏移后的位置

看到这里

你可以会用一个while循环

遇到空格来计数器--,这样也可以

不过我们可以利用指针,具体看第二步

 

 

(2)设置两个指针,一个用于指向原来的‘\0’,另一个指向‘\0’偏移后的位置

当两个指针指向同一块地址时,停止!

三、具体实现

代码块:

  1. #include<stdio.h>
  2. #include<assert.h>
  3. char* change(char* str)
  4. {
  5. assert(str != NULL);//断言,判断str知否指向空
  6. char* pstr = str;//由于str要进行变化,以后还要用到,所以先把他用pstr存
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行