一、字符串第二弹:两头堵模式

字符串问题中, 模拟实现strcpy,和strstr 是两大重点,现在介绍第三大重点,两头堵模式,即在形如" abcdefghijklmnopqrstuvwxyz "的字符串,去掉前后空格, 形成新的字符串,或是求出非空格的字符个数等,都需要用到两头堵模式;

二、举个例子:

对以下字符串," abcdefghijklmnopqrstuvwxyz "要求去掉空格形成新的字符串,并求出非字符个数;
1、while循环实现

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int isspace1(char p)//判断字符是否为空格
{if(p==' '){return -1;//若是空格,则返回-1;}return 0;//不是空格返回0
}int getstr(char *mybuf1,char *mybuf2)
{int ret =0;int count=0;char *p= mybuf1;//找一个新的指针,将原mybuf1的数据保存一份int i=0,j=0;if(mybuf1==NULL||mybuf2==NULL)//检验实参传过来的空间是否合法{ret=-1;return ret;}j=strlen(mybuf1)-1;while(isspace1(p[i]) && p[i] != '\0')///////////1////////{i++;}while(isspace1(p[j]) && j>0 ){j--;}/////////////2///////////count=j-i+1; //非空格字符的个数memcpy(mybuf2,mybuf1+i,count);//字符串拷贝函数,不拷贝'\0'mybuf2[count]='\0';//手动在最后一个字符后面加入字符串结束标志'\0'printf("count=%d\n",count);return 0;
}
//主调函数
void main()
{int ret=0;char *buf1="   abcdefghijklmnopqrstuvwxyz   ";char buf2[100];ret=getstr(buf1,buf2);if(ret!=0)//判断是否操作成功{printf("func getstr err:(ret!=0),%d\n",ret);}else{printf("新字符串为buf2:%s\n",buf2);  }system("pause ");
}

三、运行结果:

2、for循环实现,不要isspace()函数


#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int isspace1(char p)//判断字符是否为空格
{if(p==' '){return -1;}return 0;
}int getstr(char *mybuf1,char *mybuf2)
{int ret =0;int count=0;char *p= mybuf1;int i=0,j=0;if(mybuf1==NULL||mybuf2==NULL){ret=-1;return ret;}j=strlen(mybuf1)-1;for(i=0;p[i]==' '&&p[i] != '\0'&&p[j]==' ' && j>0;i++,j--){;}count=j-i+1;memcpy(mybuf2,mybuf1+i,count);//字符串拷贝函数mybuf2[count]='\0';printf("count=%d\n",count);return 0;
}void main()
{int ret=0;char *buf1="   abcdefghijklmnopqrstuvwxyz   ";char buf2[100];ret=getstr(buf1,buf2);if(ret!=0){printf("func getstr err:(ret!=0),%d\n",ret);}else{printf("新字符串为buf2:%s\n",buf2);  }system("pause ");
}

2、运行结果:

如何删除字符串中的空格相关推荐

  1. 统计substr在母串中出现次数/删除字符串中所有空格

    int count(char*str,char*substr) { int i,j,k,num=0; for(i=0;str[i]!='\0';i++) { for(j=i,k=0;substr[k] ...

  2. php 替换 tab,PHP 删除字符串中的空格和换行符终极方法 - 文章教程

    有时我们生成的代码中,或多或少会遇到代码中或者字符串中有多余的空格.换行等其他字符,但是这些字符在浏览器里面是不显示出来,任何的换行和再多的空格,都只显示一个空格的空间,这势必对网页的优化有这极其不好 ...

  3. PHP删除字符串中的空格和换行符终极方法

    问说网 > 文章教程 > 编程设计 > PHP删除字符串中的空格和换行符终极方法 字符串 换行符 文件编码 网页编码 隐藏字符 PHP删除字符串中的空格和换行符终极方法 问说网 •2 ...

  4. C语言--使用指针实现删除字符串中的空格

    本篇主要实现了在C语言使用指针实现删除字符串中的空格,详细内容见下面代码,主要利用指针遍历所得到的字符串,使用一个指针指向字符串首地址,判断其是否为空格,如果是则定义一个临时指针,并遍历之后的所有字符 ...

  5. (小甲鱼python)字符串系列笔记合集四 第四课、字符串IV总结 删除字符串中(左右)空格 删除指定的前缀或者后缀 字符串以参数指定的分隔符为依据进行切割,将切割后的结果返回一个三元组

    一.字符串总结四 1.删除字符串中(左右)空格或者与之匹配的字符串 "字符串".lstrip(char=None) 删除左空格 "字符串".rstrip(cha ...

  6. c语言删除字符串中的空格

    之前也看过别人写的一些代码都是用gets去输入字符串的,但是我用的是scanf,然而scanf函数用% s输入的话是不识别空格的,要用正则表达式去写. 以下附上我写的代码: //c语言删除字符串中的空 ...

  7. C++删除字符串中所有空格

    C++删除字符串中所有空格 我百度了好多帖子,都是互相抄的,用的递归,递归不好理解,我就用的迭代器,遍历string,碰到空格就删掉.这样很好理解. #include <iostream> ...

  8. JS 删除字符串中的空格和回车

    删除字符串中的空格 test_str = test_str.replace(/\ +/g, ""); 删除字符串中的回车 test_str= test_str.replace(/[ ...

  9. java 去掉字符串中的换行_java删除字符串中的空格、回车、换行符、制表符程序...

    本程序来详细的介绍关于java删除字符串中的空格.回车.换行符.制表符程序实例,有需要学习的朋友可参考参考. java换行符 那是因为默认的情况下,界面上的换行时用的"n",这是L ...

  10. Python删除字符串中的空格和特殊字符

    介绍字符串中处理空格和特殊字符的方法,特殊字符指制表符\t .回车符\r.换行符\n等. 1.strip() 用于删除字符串左右两侧的空格和特殊字符 语法: str.strip([chars]) ch ...

最新文章

  1. fprintf()中的stderr解析
  2. spring配置文件详解【总结】
  3. keras图像增强augmentation
  4. 理解javascript闭包
  5. 大数据量高并发的数据库优化(转)
  6. 计量经济学计算机答案第三章,计量经济学第三章习题及答案
  7. Spark记录-Scala数据类型
  8. java 星期几、得周一、得周日、上周、下周、相差、日期工具类
  9. POJ 1581 优先队列 priority_queue -- 比赛胜者求解
  10. 子类调用父类构造器的几种情况
  11. java B2B2C Springcloud仿淘宝电子商城系统-spring cloud 框架原理
  12. C语言中多维数组的内存分配和释放(malloc与free)(转)
  13. php js多语言切换,php简单实现多语言切换的方法_php技巧
  14. 【MediaSoup】UDPSOCKET recv数据到rtcp包解析
  15. lomboz eclipse怎么连接oracle10,Lomboz插件的安装与配置[Eclipse 3.0,3.1.x与3.2.x版本]第一部分...
  16. Github入门教程(新版)
  17. 如何使用ArcGIS将Excel数据转换为shp格式
  18. 利用SDL绘制点阵字
  19. hadoop最新官网如何下载之前版本(2.7.1)
  20. linux如何查看磁盘坏道

热门文章

  1. LED显示屏简介特点
  2. 新版海螺去授权无后门模板+苹果CMSver10
  3. 精排模型-从MLP到行为序列:DIN、DIEN、MIMN、SIM、DSIN
  4. 通俗易懂的解释Sparse Convolution过程
  5. 性能测试------LoadRunner
  6. 2021年中国同城配送行业发展势头良好,越来越受资本家的青睐[图]
  7. 微信公众平台上传图片,自动回复图片
  8. U盘启动Openwrt写入硬盘教程
  9. Vue--组件数据传递与组件切换
  10. java thread resume_java 线程Thread方法之suspend()和resume() | 学步园