当前位置: 首页 > news >正文

删除字符串中的空格

实例

替换前  abc def  ghi

替换后  abcdefghighi

 

思路

从前往后遍历字符串a,记录空格的个数SpaceNum

a[i] = '' : SpaceNum++

a[i]!='' :  a[i-SpaceNum] = a[i]

 

参考代码

#include <iostream>
#include <cstring>
using namespace std;

void RemoveSpace(char *a)
{
    if(a == NULL)
        return;
    int len = strlen(a);
    int SpaceNum = 0;
    for(int i = 0; i < len; ++i)
    {
        if(a[i] == ' ')
            ++SpaceNum;
        else if(SpaceNum > 0)
            a[i - SpaceNum] = a[i];
    }
    a[len - SpaceNum] = '\0';
}

int main()
{
    char a[] = "abc def  ghi";
    cout << a << endl;
    RemoveSpace(a);
    cout << a << endl;
}

结果

abc def ghi
abcdefghi

 

细节

赋值完后要置结束符'\0',否则还会记录原来的字符,比如

#include <iostream>
#include <cstring>
using namespace std;

void RemoveSpace(char *a)
{
    if(a == NULL)
        return;
    int len = strlen(a);
    int SpaceNum = 0;
    for(int i = 0; i < len; ++i)
    {
        if(a[i] == ' ')
            ++SpaceNum;
        else if(SpaceNum > 0)
            a[i - SpaceNum] = a[i];
    }
//    a[len - SpaceNum] = '\0';
}

int main()
{
    char a[] = "abc def  ghi";
    cout << a << endl;
    RemoveSpace(a);
    cout << a << endl;
}

结果

abc def ghi
abcdefghighi

相关文章:

  • 反编译APK文件
  • 学习日记(一)----BaseActivity的写法
  • 【Android-View】点击侧滑菜单(SlidingMenu)按钮,更新主题内容时容易引发的内存问题解决方案...
  • MySQL正则表达式初步
  • ssh框架整合所需jar包
  • 【cocos2d-x从c++到js】21:使用CocosCode调试JSB
  • Linux下多线程下载工具 - Axel
  • 一个简单的css3 动画例子
  • 串的存储实现
  • java基础学习总结——多态(动态绑定)
  • sql 错误提示
  • java 数字金额大写转换
  • LDAP快速入门
  • 【转】Python资源 转自 dylanninin.com
  • MongoDB2.6 新特性
  • 【前端学习】-粗谈选择器
  • 2018一半小结一波
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Docker: 容器互访的三种方式
  • Effective Java 笔记(一)
  • java 多线程基础, 我觉得还是有必要看看的
  • java正则表式的使用
  • JS实现简单的MVC模式开发小游戏
  • Laravel5.4 Queues队列学习
  • Protobuf3语言指南
  • TypeScript实现数据结构(一)栈,队列,链表
  • Vue 重置组件到初始状态
  • 笨办法学C 练习34:动态数组
  • 代理模式
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 机器学习中为什么要做归一化normalization
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 使用 Docker 部署 Spring Boot项目
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 在weex里面使用chart图表
  • 转载:[译] 内容加速黑科技趣谈
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​插件化DPI在商用WIFI中的价值
  • #13 yum、编译安装与sed命令的使用
  • #数学建模# 线性规划问题的Matlab求解
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (06)Hive——正则表达式
  • (2)(2.10) LTM telemetry
  • (a /b)*c的值
  • (第一天)包装对象、作用域、创建对象
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)计算机毕业设计大学生兼职系统
  • (黑马C++)L06 重载与继承
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在