c语言实现的trim函数,去掉字符串两端的空白字符
微wx笑
2022-03-26【编程语言】
177
4
0关键字:
c语言
功能:去掉字符串首尾的空格,换行符等空白。代码:#include <string.h>#include <stdio.h>#include <ctype.h>char *trim(char *str){ char *p = str; char *p1;
功能:去掉字符串首尾的空格,换行符等空白。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #include <string.h>#include <stdio.h>#include <ctype.h>char *trim(char *str){ char *p = str; char *p1; if(p) { p1 = p + strlen(str) - 1; while(*p && isspace(*p)) p++; while(p1 > p && isspace(*p1)) *p1--=0; } return p;}//去除尾部空格char *rtrim(char *str){ if(str == NULL||*str == '\0') { return str; } int len = strlen(str); char *p=str+len-1; while(isspace(*p)&&p>=str) { *p = '\0'; --p; } return str;}char *ltrim(char *str){ if(str == NULL||*str == '\0') { return str; } char *p = str; int len = 0; while(*p != NULL&&isspace(*p)) { ++p; ++len; } memmove(str,p,strlen(str)-len+1); return str;}int main(){ char a[]=" asa "; char* h=trim(a); printf("%s\n",h); return 0;} |
ps:不能直接用char* a=" asd ";因为这是常量字符串,不能修改。
C 库函数 int isspace(int c)检查所传的字符是否是空白字符。
标准的空白字符包括:
1 2 3 4 5 6 | ' ' (0x20) space (SPC) 空格符'\t' (0x09) horizontal tab (TAB) 水平制表符 '\n' (0x0a) newline (LF) 换行符'\v' (0x0b) vertical tab (VT) 垂直制表符'\f' (0x0c) feed (FF) 换页符'\r' (0x0d) carriage return (CR) 回车符 |
转自:https://www.cnblogs.com/fightformylife/p/4361148.html
https://www.cnblogs.com/jeffhl/p/9881785.html
本文为转载文章,版权归原作者所有,不代表本站立场和观点。



