去掉字符串中的所有空格
要去掉字符串中所有的空格,思路很自然:碰到一个空格,将其删掉,然后后面的字符前移,但当空字符比较多的时候,总这么移动,难道不复杂么?还是想想另外的办法吧。
上面的方法时间复杂度比较高,下面,我们用空间来换时间:
#include <iostream>
using namespace std;void deleteAllSpace(char str[])
{int len = strlen(str);char *p = new char[len + 1];int i, j = 0;for(i = 0; i < len; i++){if(' ' != str[i]){p[j++] = str[i];}}p[j] = '\0';strcpy(str, p);
}int main()
{char str1[] = "abc";char str2[] = " abc";char str3[] = "abc ";char str4[] = " a b c ";char str5[] = " a b c ";char str6[] = " a bcd e ";deleteAllSpace(str1);deleteAllSpace(str2);deleteAllSpace(str3);deleteAllSpace(str4);deleteAllSpace(str5);deleteAllSpace(str6);printf("%s\n", str1);printf("%s\n", str2); printf("%s\n", str3);printf("%s\n", str4);printf("%s\n", str5);printf("%s\n", str6);return 0;
}
上面这个思路不错,但是,main中的程序太丑陋了,改为如下:
#include <iostream>
using namespace std;void deleteAllSpace(char str[])
{int len = strlen(str);char *p = new char[len + 1];int i, j = 0;for(i = 0; i < len; i++){if(' ' != str[i]){p[j++] = str[i];}}p[j] = '\0';strcpy(str, p);delete []p;}int main()
{char str[6][20] ={"abc"," abc","abc "," a b c "," a b c "," a bcd e "};int i;for(i = 0; i < 6; i++){deleteAllSpace(str[i]);printf("%s\n", str[i]);}return 0;
}
事实上,上述程序的空间复杂度较高,那有没有更好的办法呢?有,如下:
#include <iostream>
using namespace std;void deleteAllSpace(char str[])
{char *p = str;int k = 0;while('\0' != *p){if(' ' != *p){str[k++] = *p++; }else{p++;}}str[k] = '\0';
}int main()
{char str[6][20] ={"abc"," abc","abc "," a b c "," a b c "," a bcd e "};int i;for(i = 0; i < 6; i++){deleteAllSpace(str[i]);printf("%s\n", str[i]);}return 0;
}
OK.
去掉字符串中的所有空格相关推荐
- js去掉字符串中的所有空格
1.使用js去掉字符串中的所有空格 1.1.定义一个去空格函数方法 function Trim(str,is_global){var result;result = str.replace(/(^\s ...
- python中文字符串多余空格_[785]python去掉字符串中多余的空格
# -*- coding:utf-8 -*- import re # 检验某个字符是否是中文字符 def is_chinese(char): if '\u4e00' <= char <= ...
- C#如何去掉字符串中所有空格
由于空格的ASCII码值是32,因此,在去掉字符串中所有的空格时,只需循环访问字符串中的所有字符,并判断它们的ASCII码值是不是32即可.去掉字符串中所有空格的关键代码如下: testCharEnu ...
- python之去掉字符串中空格的方法
#strip():去掉头和尾的空格 str1=" I love U " print(str1.strip())#lstrip():去掉左侧空格 str2=" I love ...
- php去字符串空格,php怎么去掉字符串中空格
php去掉字符串中空格的方法:1.使用正则表达式删除字符串中间的空格及去除字符串首尾空格:2.使用str_replace和strtr函数删除字符串中间的空格:3.使用trim函数去除一个字符串两端空格 ...
- java去掉字符串的空格_如何去掉字符串中的空格?
问题阐述 去掉字符串首尾的空格非常简单,使用trim()方法即可实现,但是如果要去掉字符串中的空格,应该怎么实现呢? 专家解答 Java 中没有提供直接去除字符串中空格的方法,要想去除字符串中的空格, ...
- 去掉字符串中所有空格
//去掉字符串中所有空格-1public static string RemoveBlank(string str){string RetStr = str.Replace(" " ...
- python中去掉字符串中的空格
我们想去除字符串中不必要的空格时可以使用如下方法: 在这里以str作为例子来演示.在str中前中后三处都有空格. 函数原型: 声明:str为字符串,rm为要删除的字符序列 str.strip(rm) ...
- php字符串去空格函数,php去掉字符串中的空格
php去掉字符串中空格的方法:1.使用php函数trim去除:2.使用php函数str_replace去除:3.使用php函数strtr去除:4.使用trimall方法去除:5.通过正则去掉普通空格等 ...
最新文章
- 深入理解java类加载
- lua学习笔记之字符串
- asp.net 小记
- Yii Framework2.0开发教程(8)输入验证
- 常见单片机芯片分析简介
- Python新手到熟练的百天之路
- 三大检索工具(SCI、EI、ISTP)
- matlab 贝塔系数,贝塔系数的三种计算方法.pdf
- 这下爽了,居然有人通过这个把Linux的命令提示符给整明白了
- SSM整合篇--JSP介绍
- Linux 7通过防火墙安全策略修补安全漏洞
- apache服务器设置
- 1+3+5+....+99的和为
- 凯云水利水电工程造价管理系统 技术解析(四)取费管理(一)
- 【限时删除】一个惊艳的神器,可全网爬取各种资源..........
- rk3568 修改开机动画
- C语言中强制数据类型转换
- 五款PPT的素材黑科技
- 哪款软件可以测试刘海,测试自己适合什么刘海 按照脸型来选一测便知
- .NET框架-LINQ 9类操作符使用举例
热门文章
- 计算机图形学 实验6 直线的裁剪—Cohen Sutherland裁剪算法(MFC中)
- 解决Echarts使用tab切换时只显示第一个tab中图表,其他tab中图表不显示或显示不全问题
- Windows Sockets 函数api (微软官方文档)
- 计算机网络实验华中科技大学,华中科技大学计算机网络实验报告.pdf
- C++中Exit()与atexit()函数的使用
- C#时间显示格式(12小时制VS24小时制)
- matlab求异面直线的公垂线,求异面直线的公垂线
- ELF文件——DWARF源码解析
- USB Camera摄像头 (UVC 与 gspca)
- android 杀死程序收不到推送_Android收不到推送解决方案