字符串中 去掉字符串前后空格以、'\t'(tab) C函数实现,附sscanf正则方式
生活随笔
收集整理的這篇文章主要介紹了
字符串中 去掉字符串前后空格以、'\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正则方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 函数 —— strtok() 例如:F
- 下一篇: 正则表达式——全部符号解释(详解)