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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

C 实现 删除字符串空白符的函数 strtrim

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C 实现 删除字符串空白符的函数 strtrim 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說在前面的話

字符串操作在很多C語言比賽里面都有涉及,最近公眾號里面的C語言比賽,都是兩個關于字符串操作的題目,希望大家認真看題目。

直接上代碼

/*************************************************************************> File Name: trim.c> Author: > Mail: > Created Time: Mon 12 Nov 2018 10:16:04 AM CST************************************************************************/#include<stdio.h>/*****************************************************************************函 數 名 : strtrim功能描述 : 刪除行首、行尾空白符號輸入參數 : char *is 輸出參數 : 無返 回 值 : char *調用函數 : 被調函數 : 修改歷史 :1.日 期 : 2018年11月12日作 者 : strtrim修改內容 : 新生成函數*****************************************************************************/ char * strtrim(char *s) {char *p = s;char *q = s;//去掉行首的空格while (*p==' ' || *p=='\t') ++p;//賦值while ((p != NULL)&&(q != NULL)&&(*p != '\0')&&(*p != '\0')){*q++ = *p++;};//刪除'\0'字符 注意是 -2 上面q++是先操作再自加q -= 2;//去掉行末的空格while (*q==' ' || *q=='\t') --q;//給字符串添加字符結束標志*(q+1) ='\0';//這里的return s要注意看好//因為p q經過一系列操作后,已經不是原來的位置,越界了 ,s還在原來位置,所以return s才是正確的。return s; }/*****************************************************************************函 數 名 : strtrimc功能描述 : 刪除字符串空白符,包括行首和行尾輸入參數 : char * s輸出參數 : 無返 回 值 : char *調用函數 : 被調函數 : 修改歷史 :1.日 期 : 2018年11月12日作 者 : strtrim修改內容 : 新生成函數*****************************************************************************/ char * strtrimc( char * s ) {char * p1 = s;char * p2 = s;while(*p1 != '\0'){while(*p1 == ' ' || *p1 == '\t'){p1 ++;}* p2 ++ = *p1 ++;}*p2 = '\0';return (s); } void main(void) {char str[1000] = {" adf asdfasldf jjjjjjjjj iiii "};char str1[1000] = {" adf asdfasldf jjjjjjjjj iiii "};puts("Start main.");printf("%s\n",strtrimc(str));printf("%s\n",strtrim(str1)); }

注意問題

1 常量區

剛開始的時候,我寫的是char * s = "adfasdfasdfsf adfasdf adfasdfad ";
然后出現段錯誤,這里定義的s,保存在的是常量區,所以不能做賦值等操作,大家對字符串操作的時候要特別注意。

2指針的返回值問題


原來我返回的是p1 ,p1 p2 s原來是相等的,但是經過一系列運算后,他們的值已經不相等了,他們的值如上面顯示那樣,所以返回值一直要返回s。

總結

以上是生活随笔為你收集整理的C 实现 删除字符串空白符的函数 strtrim的全部內容,希望文章能夠幫你解決所遇到的問題。

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