C语言的标准库中缺少对字符串进行操作的trim()函数,使用起来有些不便,可以使用利用 strlen 和 isspace 函数以及指针来自己写一个。

1、strlen 函数

原型:extern int strlen(char *s);
        
用法:#include <string.h>

功能:计算字符串s的长度

说明:返回s的长度,不包括结束符NULL。

2、isspace 函数

原型:extern int isspace(int c);

用法:#include <ctype.h>

功能:判断字符c是否为空白符

说明:当c为空白符时,返回非零值,否则返回零。
   空白符指空格、水平制表、垂直制表、换页、回车和换行符。

3、trim 函数

 #include <string.h>
#include <ctype.h> char *trim(char *str)
{
char *p = str;
char *p1;
if(p)
{
p1 = p + strlen(str) - ;
while(*p && isspace(*p)) p++;
while(p1 > p && isspace(*p1)) *p1-- = '/0';
}
return p;
}

4、应用举例

int main()
{
int i = ;
char strs[][] = {
NULL,
"",
" ",
"hello world",
" hello",
"hello world ",
" hello world ",
"/t/n/thello world ",
"END"
};
do
{
printf("trim(/"%s/")=%s./n", strs[i], trim(strs[i]));
}while(strcmp(strs[i++], "END")); return ;
}

转自:http://blog.csdn.net/fengrx/article/details/4163148

C语言写的trim()函数的更多相关文章

  1. 写一个trim函数,兼容IE firefox chrome(正则)

    因为在获取输入框内容时,常常trim下多余的空格.而IE部分低端浏览器里的JavaScript版本不内置trim()这个清楚空格函数,而流行的浏览器里都兼容了,比如chrome,FF等.为了不让IE下 ...

  2. 用matlab脚本语言写M文件函数时用三种方法简单实现实现DFT(离散傅里叶变换)

    %用二重循环实现DFT: function xk=dt_0(xn); %define a function N=length(xn); %caculate the length of the vari ...

  3. C语言写猜拳游戏中遇到的函数循环小问题

    各位可能在初学C语言的时候都有写过猜拳游戏.但在写猜拳的函数时,避免不了会使用循环. 当函数被套在一个循环中的时候,你的计分变量可能就会被重置为函数体里的初始值.那么怎么解决这个问题? 其实很简单,你 ...

  4. JQuery中trim函数的具体实现代码

    由于Javascript 1.8.1 之前的版本,没有内置 trim 函数,所以 JQuery 对它有自己的实现.不同的JQuery版本,trim函数的实现也不尽相同. 阅读本文需要掌握正则表达式用法 ...

  5. 【SQL】靠谱的TRIM函数,附赠过程一枚

    SQL中有LTRIM和RTRIM这两个函数分别用于去除字符串的首.尾空格,缺乏常见的能同时去除首尾的TRIM函数,另外,这俩函数都只对[空格]有效,所以如果首尾是制表符.换行符等等[空白],它们是不处 ...

  6. PIC12F629帮我用C语言写个程序,控制三个LED亮灭

    http://power.baidu.com/question/240873584599025684.html?entry=browse_difficult PIC12F629帮我用C语言写个程序,控 ...

  7. JAVA调用C语言写的SO文件

    JAVA调用C语言写的SO文件 因为工作需要写一份SO文件,作为手机硬件IC读卡和APK交互的桥梁,也就是中间件,看了网上有说到JNI接口技术实现,这里转载了一个实例 // 用JNI实现 // 实例: ...

  8. 用C语言写个程序推算出是星期几?(用泰勒公式实现)

    在日常生活中,我们常常遇到要知道某一天是星期几的问题.有时候,我们还想知道历史上某一天是星期几.比如: “你出生的那一天是星期几啊?” “明年五一是不是星期天?我去找你玩?” 通常,解决这个问题的最简 ...

  9. 用C语言写解释器(一)——我们的目标

    声明 为提高教学质量,我所在的学院正在筹划编写C语言教材.<用C语言写解释器>系列文章经整理后将收入书中"综合实验"一章.因此该系列的文章主要阅读对象定为刚学完C语言的 ...

随机推荐

  1. 以宽字符形式读整个文件的内容(wifstream的使用)

    // TestShlwAPI.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h" #include <iostream>using s ...

  2. Oracle学习笔记之二,Oracle 11g体系结构

    Oracle 11g体系结构概述 实例(Instance),是指一组Oracle后台进程以及在服务器中分配的共享内存区域: 数据库(Database),是由基于磁盘的数据文件.控制文件.日志文件.参数 ...

  3. JBoss DataGrid的集群部署与訪问

    集群部署 JDG的缓存模式包含本地(Local)模式和集群(Clustered)模式.本项目採用多节点的Clustered模式部署.数据在多个节点的子集间进行复制.而不是同步拷贝到全部的节点. 使用子 ...

  4. [svc][op]关闭linux centos各种声音

    现在基本都用xshell了,直接xshell禁止即可 shell报警 #vi /etc/inputrc ================================ set bell-style ...

  5. Cortex-A

    本文整理了arm cortexA 系列的CPU的相关信息,以便在芯片选型时提供帮助. Cortex-A发布时间 Cortex-A 支持的位数及架构 Cortex-A 系列的芯片 ARMv7-A内核的比 ...

  6. python(31) enumerate 的用法

    例子一: b = "abcd" kv_dict = {} pre = 1234 for i, v in enumerate(b): kv_dict['%s-%d.jpg' %(pr ...

  7. Angularjs 源码

    /** * @license AngularJS v1.3.0-beta.15 * (c) 2010-2014 Google, Inc. http://angularjs.org function t ...

  8. xslt转换xml

    实现json--> xml --(xlst)--> xml pom依赖 <dependency> <groupId>net.sf.json-lib</grou ...

  9. JSP/Servlet中文乱码处理总结

    下面的任何一条缺一不可,注意,我之所以全部都用的XXX,意思就是这几个最好全部都一致! 1.HTML中要用meta content="text/html; charset=XXX" ...

  10. C#中一道关于多线程的编程题

    题目的意思是这样的:让两个线程A和B将自己的ID轮番写入一个文件中,每个线程重复十次写入后执行一个回调函数,说“I'm OK”,就这样.我是一名QA,不是开发,出于兴趣报考了公司的C#课程考试,多线程 ...