C语言中trim的实现

本文详细介绍C语言中trim的实现

描述

自己用ATL写了个COM,不支持MFC,所以无法用CString,但支持C编码,遇到字符串(字符数组),想去掉字符串中的空格,C下没有TRIM函数,找又没找到,几行代码自己写吧。往后大家万一遇到用着也方便。

说明

1.seps是需要去除的字符数组,可以有几个字符,也可以一个。这里是空格,最常用的。

2.参数也很简单,第一个是结果数组指针,第二个是原字符数组指针,第三个是需要去掉的字符数组指针。返回的是结果数组指针。

#include "stdafx.h"#include <string.h>#include <stdio.h>char seps[]   = " ";char* trim(char* desc,char* src,char* seps);int main(int argc, char* argv[]){char szResult[1024]="";memset(szResult,0,1024);char strtemp[]="ab c d e f";printf( "%s\n\nTokens:\n", strtemp );trim(szResult,strtemp,seps);    printf( "result:%s(ok!)\n", szResult );return 0;}//////////////////////////////////////////////////////char* trim(char* desc,char* src,char* seps){char* token=NULL;  /* Establish string and get the first token: */   token = strtok(src, seps);   while( token != NULL )   {      /* While there are tokens in "string" */      printf( " %s\n", token );  strcat(desc,token);      /* Get next token: */      token = strtok( NULL, seps );   }   return desc;}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索指针
, 数组
, strtok函数
, c语言数组 字符串
, token
, 字符
, char
, c语言char
, Trim
, 语言char
char数组
c语言trim函数、c语言trim库函数用法、c语言 trim、trim实现、原型正则实现trim,以便于您获取更多的相关知识。

时间: 2024-10-31 08:17:56

C语言中trim的实现的相关文章

c语言-C语言中的rand()函数的问题

问题描述 C语言中的rand()函数的问题 代码如下,为什么a总是输出0,而b却能正常输出?rand()的返回值不是在0~RAND_MAX之间的整数吗? #include <stdlib.h> #include int main (void) { int a; int b; int i; for (i=0;i<5;i++) { a=10*rand()/RAND_MAX; printf ("a=%dn",a); } for (i=0;i<5;i++) { b=10

Java 语言中 Enum 类型的使用介绍

Enum 类型的介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似 的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的 定义相似.不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围. 举个例子来说明 一下,如果希望为彩虹描绘出七种颜色,你可以在 Java 程序中通过常量定义方式来实现. 清单 1. 常量定义 Public static class RainbowColor { // 红橙黄绿青蓝紫

详解Ruby语言中的String

Ruby语言中的String是mutable的,不像java.C#中的String是immutable的.比如 str1="abc" str2="abc" 在java中,对于字面量的字符串,jvm内部维持一张表,因此如果在java中,str1和str2是同一个 String对象.而在Ruby中, str1和str2是完全不同的对象.同样,在java中对于String对象的操作都将 产生一个新的对象,而Ruby则是操纵同一个对象,比如: str="abc&q

c语言中static用法总结

一.c程序存储空间布局   C程序一直由下列部分组成: 正文段--CPU执行的机器指令部分:一个程序只有一个副本:只读,防止程序由于意外事故而修改自身指令: 初始化数据段(数据段)--在程序中所有赋了初值的全局变量,存放在这里. 非初始化数据段(bss段)--在程序中没有初始化的全局变量:内核将此段初始化为0. 栈--增长方向:自顶向下增长:自动变量以及每次函数调用时所需要保存的信息(返回地址:环境信息). 堆--动态存储分. |-----------||           ||-------

对C语言中sizeof细节的三点分析介绍

以下是对C语言中sizeof的细节进行了详细的分析介绍,需要的朋友可以参考下   1.sizeof是运算符,跟加减乘除的性质其实是一样的,在编译的时候进行执行,而不是在运行时才执行.那么如果编程中验证这一点呢?ps:这是前两天朋友淘宝面试的一道题,小编理解: 复制代码 代码如下: #include<iostream> using namespace std; int main() {     int i=1;     cout<<i<<endl;     sizeof(

C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别

以下是对C语言中printf(),sprintf(),scanf(),sscanf()的用法以及区别进行了详细的分析介绍,需要的朋友可以参考下   printf语法: #include <stdio.h> int printf( const char *format, ... ); printf()函数根据format(格式)给出的格式打印输出到STDOUT(标准输出)和其它参数中.返回值是输出的字符数量.sprintf语法: #include <stdio.h> int spri

C语言中assert的用法

以下是对C语言中assert的使用方法进行了介绍,需要的朋友可以参考下   assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h> void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息, 然后通过调用 abort 来终止程序运行.请看下面的程序清单badptr.c:

C语言中sscanf 的用法

以下是对C语言中sscanf函数的使用方法进行了详细的分析介绍,需要的朋友参考下   名称:sscanf() - 从一个字符串中读进与指定格式相符的数据. 复制代码 代码如下: 函数原型:Int  sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,argument]... ); 说明:sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为

php语言中switch的用法

  php语言中switch的用法介绍: $czc="reg"; switch($czc){ case 'reg'://注册 echo "注册的代码"; break;//如果注释掉此句,将执行下在的代码,否则终止 case 'logout'://退出 echo "退出的代码"; break; default://此代码 除了reg,logout外其它的都是执行以下面的代码 include 'user/info.php'; break; } /*此