C风格字符串左边空格移动到末尾
1、首先去除字符串左边n(n>=0)个连续空格符;
2、把去除掉的n个空格字符原数追加到去除左边空格后的字符串末尾;
3、整个过程没有改变过字符串中间含有的空格,字符串长度不变,调用函数后改变了原字符串。
#include <string.h>
//去除字符串首部空格,并原数追加到字符串末尾
char *ltrim_rcat_sp(char *str)
{
if (str == NULL || *str == '\0') return str;
int len = 0;
char *p = str;
while (*p == ' ')
{
++p;
++len;
}
int iPreLen = strlen(str);
memmove(str, p, iPreLen - len + 1);
//调用memmove函数后改变了str指针指向内容
int iAftLen = strlen(str);
for (int i = 0; i < iPreLen - iAftLen; i++) strcat(str, " ");
return str;
}
以此类推,可以扩展到其他字符处理。