c语言实现php的trim标签

清除字符串开头结尾除空白
修改原字符串
不能清除全角字符

/*
 * 清除字符串开始结尾处的空白
 * 修改原字符串
 * */
static char* trim(char*str){
  char* p1 = str,*p2 = NULL,*p3 = NULL;
  int flag = 0;
  while(*(p1) != '\0'){
    if(isspace(*p1)){
      if(p3 == NULL) p3 = p2 == NULL?p1:p2;//标记结尾空白
      if(0 == flag) {//标记开头为空白
        flag = 1;
        p2 = p1;
      }else if(2 == flag){//中间空白
        *(p2++) = *p1;
      }
    }else {
      if(1 == flag || flag == 2){//开头空白结束标志
        *(p2++) = *p1;
        flag = 2;
      }else flag = -1;//开头无空白
      p3 = NULL;//清除结尾空白
    }
    p1++;
  }
  //标记结尾
  if(p3 != NULL) *p3 = '\0';
  else if(p2 != NULL) *p2 = '\0';
  return str;
}
(0)

相关推荐

  • 用C语言判断字符是否为空白字符或特殊字符的方法

    C语言isspace()函数:判断字符是否为空白字符 头文件: #include <ctype.h> 定义函数: int isspace(int c); 函数说明:检查参数c是否为空格字符,也就是判断是否为空格(' ').定位字符(' \t ').CR(' \r ').换行(' \n ').垂直定位字符(' \v ')或翻页(' \f ')的情况. 返回值:若参数c 为空白字符,则返回非 0,否则返回 0. 附加说明:此为宏定义,非真正函数. 范例:将字符串str[]中内含的空格字符找出,并显

  • PHP中用正则表达式清除字符串的空白

    如果您想要去掉字符串开始和结束的空白可以使用PHP内部函数trim() .但是, 我们经常想完全清除空白.需要把开始和结束的空白清除掉,将多个空白变为一个空白,使用一个规则来处理同样的类型的其它空白. 完成这些可以使用PHP的正则表达式来完成 下例可以去除额外Whitespace 复制代码 代码如下: <?php $str = " This line contains\tliberal \r\n use of whitespace.\n\n"; // First remove t

  • 用MySQL函数清除字符串首尾空白字符的方法

    问题:短信息审核的时候,会根据内容来进行判断,比如a内容可以通过,b内容不能通过,则MySQL中表现为 msg = a,msg = b,可是如果msg字段的内容中包含回车换行等空白字符(最常见的是内容开头和末尾出现换行),则比对就不成功,造成短信息审核不成功. 由于内容插入的时候没办法进行完全的过滤,所以审核这里就经常出问题,搞的头大,而MySQL的trim函数没办法去掉回车和换行,只能去掉多余的空格,今天研究了一下MySQL的函数,replace函数,终于解决掉了这个问题,具体解决办法如下:

  • c语言实现php的trim标签

    清除字符串开头结尾除空白 修改原字符串 不能清除全角字符 /* * 清除字符串开始结尾处的空白 * 修改原字符串 * */ static char* trim(char*str){ char* p1 = str,*p2 = NULL,*p3 = NULL; int flag = 0; while(*(p1) != '\0'){ if(isspace(*p1)){ if(p3 == NULL) p3 = p2 == NULL?p1:p2;//标记结尾空白 if(0 == flag) {//标记开头

  • Java 语言实现清除带 html 标签的内容方法

    实例如下: public String stripHtml(String content) { // <p>段落替换为换行 content = content.replaceAll("<p .*?>", "\r\n"); // <br><br/>替换为换行 content = content.replaceAll("<br\\s*/?>", "\r\n"); // 去

  • MyBatis动态SQL中的trim标签的使用方法

    trim标记是一个格式化的标记,可以完成set或者是where标记的功能,如下代码: 1. select * from user <trim prefix="WHERE" prefixoverride="AND |OR"> <if test="name != null and name.length()>0"> AND name=#{name}</if> <if test="gender

  • Mybatis Trim标签用法简单介绍

    废话不多说了,直接给大家贴代码了,具体代码如下所示: <update id="updateAuditStateAndType" parameterType="Java.util.Map"> update social_building_info <trim prefix="set" prefixOverrides=","> <if test="auditState != null and

  • mybatis trim标签的使用详解

    mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 "where"."set"以及"values(" 等前缀,或者添加")"等后缀,可用于选择性插入.更新.删除或者条件查询等操作. 以下是trim标签中涉及到的属性: 属性 描述 prefix 给sql语句拼接的前缀 suffix 给sql语句拼接的后缀 prefixOverrides 去除sql语句前面的关键字或者字符,该关键

  • R语言-如何给直方图加标签

    看代码吧~ hist(data$MEDV,col="grey")#可以看到目标数据的总体分布 legend(35,170,c("min:5","median:21.2","mean:22.51","max:50"),fill=c("lightblue","wheat")) 补充:R语言作图--histogram(直方图) 最近小仙同学很是烦恼,本以为自己已经掌握了gg

  • mybatis框架xml下trim中的prefix与suffix等标签的用法

    trim中prefix与suffix等标签用法 1.prefix 前缀增加的内容 2.suffix 后缀增加的内容 3.prefixOverrides 前缀需要覆盖的内容,一般是第一个判断条件前面的多余的结构,如:第一个判断条件前面多了 'and' select * from User where name='zhangsan' and age='20'; <select id='queryUser'> select * from User <trim prefix='where' pr

  • MyBatis动态SQL标签的用法详解

    1.MyBatis动态SQL MyBatis 的强大特性之一便是它的动态 SQL,即拼接SQL字符串.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号.利用动态 SQL 这一特性可以彻底摆脱这种痛苦. 通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意的 SQL 映射语句中. 动态 SQL 元素和

  • MyBatis的9种动态标签详解

    目录 前言 动态标签用法 1.if 2.choose.when.otherwise 3.where 4.set 5.trim 6.foreach 7.bind 前言 MyBatis提供了9种动态SQL标签:trim.where.set.foreach.if.choose.when.otherwise.bind: 其执行原理为,使用OGNL从SQL参数对象中计算表达式的值,根据表达式的值动态拼接SQL,以此来完成动态SQL的功能. 动态标签用法 1.if If : 当参数满足条件才会执行某个条件

  • Lesson02_01 表格标签

    第2讲 HTML语言的高级部分 表格标签 帧标签 表单标签 头元素 分区标签 表格标签 表格标签:<table></table> 属性名 作   用 bgcolor 表格的背景色 border 表格的边框的宽度 bordercolor 表格的边框颜色 bordercolorlight 表格的边框明亮部分的颜色 bordercolordark 表格的边框的昏暗部分的颜色 cellspacing 表格的单元格之间的间隔大小 cellpadding 表格的单元格的边框与内部内容之间的间隔

随机推荐