文章目录

  • 1.void CutSpace1(char* StrRes, char* StrDec)
  • 2. int CutSpace2(char** StrRes,int* len)
  • 3. void CutSpace3(char* StrRes)
  • 4. void CutSpace4(char* StrRes)

1.void CutSpace1(char* StrRes, char* StrDec)

在调用函数申请栈空间,可以在被调用函数中使用;
不改变原来字符串;

#include<stdio.h>
#include<stdlib.h>//StrDec即是输入又是输出
void CutSpace1(char* Res, char* Dec)
{//int i = 0;for (; *Res != '\0'; Res++) {if (*Res != ' ')*Dec++ = *Res;//'++' 优先级比 '*'高,但是这里'++'作为后缀,先进行*Dec,再自加}*Dec = '\0';return;
}int main() {char StrRes[] =  "   hello  moto!  " ;char StrDec[64] = "";CutSpace1(StrRes, StrDec);printf("%s\n", StrDec);return 0;
}

2. int CutSpace2(char** StrRes,int* len)

在被调用函数中申请堆空间,在调用函数中也可以使用;
用二级指针作为形参,

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>/*char* CutSpace2(char* StrRes, int max)
{int i = 0;char* ptr = (char*)malloc(max*sizeof(char));while(*StrRes){if(*StrRes!= ' ')ptr [i] = *StrRes;StrRes++;}//使用数组的形式,而不是指针的形式,是为了方便得到数组首地址,方便显示赋值后的数组ptr [i] = '\0';return ptr ;
}int main() {char StrRes[] =  "   hello  moto!  " ;int max = sizeof(StrRes) / sizeof(char);printf("%s\n", CutSpace2(StrRes, max));return 0;
}
*/
int CutSpace2(char** Res,int* len)
{int i = 0;int j = 0;char* ptr = (char*)malloc(16*sizeof(char));strcpy(ptr,"   hello  motto!");for(;ptr[i] != '\0';i++){if(ptr[i] != ' ')ptr[j++] = ptr[i]; }ptr[j] = '\0';*len = str(ptr);*Res= ptr;//Res是二级指针,加'*'解引用得到一级指针,即字符串首地址,也就是StrRes; (char*)*Res = (char*)ptr;return 0;
}int main()
{char *StrRes = NULL;int len = 0;CutSpace2(&StrRes ,&len);printf("%s  %d\n",StrRes ,len);if(StrRes ){free(StrRes );StrRes = NULL;}return 0;}

3. void CutSpace3(char* StrRes)

在被调用函数中申请栈空间,存储传进来的调用函数的字符串地址,即复制了一份字符串在被调用函数栈空间中。
直接改变了原来的字符串。

#include<stdio.h>
#include<stdlib.h>void CutSpace3(char* StrRes)
{int i = 0;char* ptr = StrRes;while(*ptr){if(*ptr != ' ')StrRes[i++] = *ptr;//StrRes[i]  等价于 *(StrRes + i)ptr++;}StrRes[i] = '\0';return;
}int main() {char StrRes[] =  "   hello  moto!  " ;CutSpace3(StrRes);printf("%s\n", StrRes);return 0;
}

4. void CutSpace4(char* StrRes)

直接修改调用函数申请的栈空间中的数据;

#include<stdio.h>
#include<stdlib.h>void CutSpace3(char* StrRes)
{int i = 0;int j = 0;for(;StrRes[i] != '\0';i++){if(StrRes[i] != ' ')StrRes[j++] = StrRes[i];}StrRes[j] = '\0';return;
}int main() {char StrRes[] =  "   hello  moto!  " ;CutSpace4(StrRes);printf("%s\n", StrRes);return 0;
}

参考文章:C语言——删除字符串中的空格

c语言实现去除字符串中空格相关推荐

  1. c语言去除字符串的空格,C语言实现去除字符串中空格

    去除字符串中所有空格 voidVS_StrTrim(char*pStr) { char *pTmp = pStr; while (*pStr != '/0') { if (*pStr != ' ') ...

  2. C语言去掉字符串首尾空格,C语言实现去除字符串首尾空格

    C语言实现去除字符串首尾空格 2019年09月28日 | 萬仟网IT编程 | 我要评论 /* C语言去除字符串首尾空格,trim()函数实现 https://blog.csdn.net/u013022 ...

  3. java:去除字符串中空格 、 oracle (+) 、 mysql中数值运算符和函数

    java:去除字符串中空格 http://www.cnblogs.com/LiuChunfu/p/5661810.html oracle:oracle (+) https://zhidao.baidu ...

  4. Python 去除字符串中空格(删除指定字符)的3种方法

    文章目录 Python 去除字符串中空格 Python strip()方法 Python lstrip()方法 Python rstrip()方法 Python 去除字符串中空格 用户输入数据时,很有 ...

  5. Java详解去除字符串中空格的方法

    Java去除字符串中空格的方法详解 代码中字符串使用了replaceAll()方法,去除了所有空格(其中包括:首尾空格.中间空格) 遂整理下java关于字符串去除空格的方法. 1.方法分类 str.t ...

  6. 去除 字符串中空格/回车

    去除 字符串中空格/回车 1),java去除字符串中的空格.回车.换行 符.制表符 import java.util.regex.Matcher; import java.util.regex.Pat ...

  7. Python去除字符串中空格(删除指定字符)的3种方法

    用户输入数据时,很有可能会无意中输入多余的空格,或者在一些场景中,字符串前后不允许出现空格和特殊字符,此时就需要去除字符串中的空格和特殊字符. 这里的特殊字符,指的是制表符(\t).回车符(\r).换 ...

  8. Java去除字符串中空格的方法详解

    昨天写了一个关于Excel文件处理的脚本,在字符串匹配功能上总是出现多余不正确的匹配,debug调试之后,发现一个坑. 代码中字符串使用了replaceAll()方法,去除了所有空格(其中包括:首尾空 ...

  9. Python中去除字符串中空格的四种方法

    一.需求说明 业务需要对Pyhon中的一些字符串内容去除空格,方便后续处理. 二.思路分析 去除空格内容,可以使用去除字符串空格的函数或者直接使用替换函数即可. 三.实现方法 3.1.去除字符串头尾的 ...

最新文章

  1. 题目 1471:【蓝桥杯】【入门题】【基础练习VIP】矩形面积交
  2. 关于iOS 架构的文章
  3. 又改ResNet | 重新思考ResNet:采用高阶方案的改进堆叠策略(附论文下载)
  4. Spring Boot 解决跨域问题的 3 种方案
  5. java演出厅选票_高仿猫眼电影选座(选票)模块-b
  6. vivado中交织模块_搞定Markdown中的图片,一劳永逸的方法!
  7. 信息学奥赛一本通(1150:求正整数2和n之间的完全数)
  8. 一种拜占庭共识协议-Byzantine Agreement,Made Trivial
  9. Security+ 学习笔记13 加密基础
  10. cassandra 学习笔记(2)
  11. 开启协程_一篇文章搞懂Python协程
  12. pc机收集信息cpu\配置\网络信息
  13. 数据库安全关键技术之数据库脱敏技术详解
  14. nexus5 android5.0 型号LRX210 ROOT
  15. 免费的在线Web文件管理器:Net2FTP,Pydio,eXtplorer,KodExplorer–功能强大
  16. Qt5.9.0下载与安装(windows版本)
  17. 你的“电动爹”,国庆又又又趴窝了吗
  18. 聚磷酸酯-紫杉醇前药(PTX-PEEP)|聚姜黄素-二硫键-聚甲基丙烯酸二乙胺基乙酯-聚磺酸甜菜碱|齐岳生物
  19. React框架+cesium加载GeoWebCache发布4326WMTS服务的ArcGIS切片图层请求400问题
  20. 最大化 LoRa 长距离,您应该知道的完整秘籍

热门文章

  1. 这个macOS神器,让爱怀旧的人直呼:“爷青回!”
  2. 用Python选取神股(简单、粗暴)
  3. 深圳买学区房要注意事项有哪些
  4. 云数据库RDS规格族配置详解
  5. 2020年中国维生素行业发展现状及竞争格局分析,市场空间广阔「图」
  6. 机器学习笔记~HDF5 library version mismatched error与ImportError: 'save_model' requires h5py问题解决
  7. NVIDIA Jetson之GPIO引脚设置
  8. 华为网络技术学习打卡8(云计算大数据,openstack,docker)
  9. Centos yum安装Mysql
  10. Linux系统VPS云服务器硬件/网速/性能/延迟测试一键脚本分享