字符串中 去掉字符串前后空格以、'\t'(tab) C函数实现,附sscanf正则方式
一、问题描述:
当读取配置文件的时候,fgets()一行一行的读取文件后,sscanf()会对读取出来的这行字符串进行截取处理(此时sscanf()使用正则表达式处理字符串),但是当字符串的首位有空格或者‘\t’时候,后续字符串的比较时,会带来不必要的麻烦。
二、举例说明:
(提示:->表示开始 <-表示结尾 实际的配置文件中并不存在,只是为了更好的显示文件中有空格或者tab)
配置文件如下所示,起始位置有空格与'\t':
程序中sscanf()并没有 在正则中处理首位空格 ‘\t’:
在后续的对比操作中会有不必要的麻烦。
因此在fgets()后面,sscanf()前 需要对读出的linebuffer进行首位去除空格 ‘\t’的处理。
三、代码实现:
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
void trim(char *strIn, char *strOut){int i, j ;i = 0;j = strlen(strIn) - 1;while(strIn[i] == ' ' || strIn[i] == '\t')++i;while(strIn[j] == ' ' || strIn[j] == '\t')--j;strncpy(strOut, strIn + i , j - i + 1);strOut[j - i + 1] = '\0';
}
void main()
{char *strIn = " this is a test string ";char strOut[100];trim(strIn,strOut);printf("*%s*\n",strOut);
}
当然也可以考虑 用sscanf的正则表达式完成对字符串前后空格、tab的删除。链接如下:
sscanf正则去掉字符串前后空格https://blog.csdn.net/weixin_42167759/article/details/80379430
字符串中 去掉字符串前后空格以、'\t'(tab) C函数实现,附sscanf正则方式相关推荐
- python中去掉字符串中的空格
我们想去除字符串中不必要的空格时可以使用如下方法: 在这里以str作为例子来演示.在str中前中后三处都有空格. 函数原型: 声明:str为字符串,rm为要删除的字符序列 str.strip(rm) ...
- JAVA中去掉字符串中的空格
1.使用 String 类提供的 trim() 方法. 使用 trim() 方法的示例如下: String str = " hello "; System.out.println( ...
- c语言中去掉全角空格,c#中去掉字符串空格方法
(1)Trim方法 string tt=" aaa "; tt=tt.Trim() 去字符串首尾空格的函数 tt=tt.TrimEnd() 去掉字符串尾空格 tt= ...
- 正则表达式记录,匹配字符串中第3个空格和第4个空格中间的字符
获取字符串中第3个空格和第4个空格中间的字符(非定长分隔符字符串数据截取) pattern = "^(?:\S+\s){3}(\S+)\s" # 注意,\s也代表换行符等 impo ...
- c# 字符串中多个连续空格转为一个空格
#region 字符串中多个连续空格转为一个空格 /// <summary> /// 字符串中多个连续空格转为一个空格 /// </summary> /// <param ...
- C# 字符串中去掉换行符、间隔符等特殊字符
C# 字符串中去掉换行符.间隔符等特殊字符 1.String.Replace方法 在C#中替换字符串中的字符我们可以使用String提供的Replace方法. string s = "sds ...
- java中去字符串中的(全角)空格
在Java中去字符串首尾空格或去除所有空格的(包括全角)方法如下: /** * 去除字符串中所包含的空格(包括:空格(全角,半角).制表符.换页符等) * @param s * @return */ ...
- 编写一个函数,从一个字符串中去除多余的空格。
这道题是<C和指针>上面的习题,出自于65页第7题,题目描述为: 编写一个函数,从一个字符串中去除多余的空格.函数的原型应该如下: void deblank( char string ...
- Java案例——统计字符串中每个字符串出现的次数
统计字符串中每个字符串出现的次数 需求: 1.键盘录入一个字符串,要求统计字符串中每个字符串出现的次数 举例:键盘录入"aababcabcdabcde" 在控制台输出:" ...
最新文章
- 任正非致“背叛者”与给竞争对手捐款
- 汉语拼音+脑洞[BJDCTF 2nd]老文盲了
- DataWorks搬站方案:Airflow作业迁移至DataWorks
- BEGIN-1 A+B问题
- python开发多平台app_django下创建多个app并设置urls方法
- java ee的小程序_扩展Java EE应用程序的基础
- Spring Cloud Feign 请求压缩 、Feign的日志级别配置
- 物联网常用的组网方式浅析
- 国内各大音乐平台歌曲分享
- java http 下载_Java 通过 HTTP 下载文件
- 读懂现金贷产品的客群风险标签维度
- MTK modemlog分析
- Win10 DirectShow
- Program received signal SIGFPE,Arithmetic exception.
- ERROR: torch-1.6.0+cu101-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform.
- 机器学习算法-逻辑回归(LR)
- aws api gateway 使用阿里云的域名访问
- 点星PBX(DotAsterisk)外线呼入到离线坐席(sip分机未注册)时,如何播放语音提示外线客户坐席不在线
- java中的this
- 求任意两个整数的最大公因数
热门文章
- Silverlight调用的JS方法返回对象数组的处理方法
- ASP.NET MVC编程——视图
- 分享一份JS前端面试题
- 开源Math.NET基础数学类库使用(11)C#计算相关系数
- PHP ‘ext/soap/soap.c’权限许可和访问控制
- libvirt 网络
- leetcode算法题--分割等和子集★
- 包里替换class文件_Java 反射之根基 Class 类
- python interactive 清空内存_Python 内存回收问题
- windows找不到msconfig解决方法