C语言实现trim函数,若有问题,请指正

来源:互联网 发布:While最大公约数c语言 编辑:程序博客网 时间:2024/05/04 23:17
/*----------------------------------------------------------------【函数介绍】: 去掉首尾指定字符【入口参数】: szascii码字符串(以'\0'结尾)              c指定字符【返回  值】: (无)【出口参数】: sz返回对应的去掉指定字符后的字符串-----------------------------------------------------------------*/static void trim(char *sz, char c){if (sz == NULL || sz[0] == '\0')return;size_t nlen = strlen(sz);size_t nbegin;// 第一个!c字符下标size_t nend;// 最后一个!c字符下标for (nbegin = 0; nbegin < nlen && sz[nbegin] == c; ++nbegin);for (nend = nlen - 1; nend >= nbegin && sz[nend] == c; --nend);if (nbegin < nend)// 有多个!c字符{memcpy(sz, sz + nbegin, nend - nbegin + 1);sz[nend - nbegin + 1] = '\0';}else if (nbegin == nend)// 只有一个!c字符{char tmp = sz[nbegin];memset(sz, 0, nlen);sz[0] = tmp;}else// 没有!c字符memset(sz, 0, nlen);}

0 0