日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

字符串中 去掉字符串前后空格以、'\t'(tab) C函数实现,附sscanf正则方式

發布時間:2025/10/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字符串中 去掉字符串前后空格以、'\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正则方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。