日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

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

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