简述:
我String.Trim
使用win32和标准C api(使用MSVC2008进行编译,因此我可以访问所有C++的东西,如果需要,但我只是试图修剪一个char*
).
鉴于存在strchr
,strtok
以及其他字符串函数的所有方式,肯定应该有装饰功能,或者一个可以改变用途...
谢谢
没有标准的库函数可以做到这一点,但滚动自己并不难.关于这样做的问题有一个现有的问题,用源代码回答.
这让我想写自己的 - 我不喜欢那些提供的.在我看来应该有3个功能.
char *ltrim(char *s) { while(isspace(*s)) s++; return s; } char *rtrim(char *s) { char* back = s + strlen(s); while(isspace(*--back)); *(back+1) = '\0'; return s; } char *trim(char *s) { return rtrim(ltrim(s)); }
您可以使用ctype.h中的标准isspace()函数来实现此目的.只需比较字符数组的开头和结尾字符,直到两端都不再有空格.
"空间"包括:
''(0x20)空格(SPC)
'\ t'(0x09)水平标签(TAB)
'\n'(0x0a)换行符(LF)
'\ v'(0x0b)垂直制表符(VT)
'\ f'(0x0c)feed(FF)
'\ r'(0x0d)回车(CR)
虽然没有任何功能可以为您完成所有工作,但您必须重复自己的解决方案,以反复比较给定字符数组的每一侧,直到没有空格.
编辑:
由于您可以访问C++,Boost有一个修剪实现等着您,让您的生活更轻松.