我有一个带有UTF8数据的缓冲区。我需要删除前导和尾随空格。 这里是C代码做它(到位)为ASCII缓冲区: 修剪UTF8缓冲区
char *trim(char *s)
{
while(isspace(*s))
memmove(s, s+1, strlen(s));
while(*s && isspace(s[strlen(s)-1]))
s[strlen(s)-1] = 0;
return s;
}
如何做UTF8缓冲同在C/C++?
P.S. 感谢您对strlen()的性能提示。具体回到UTF8:如果我需要一起删除所有空间,不仅在开始和尾部,会怎么样?此外,我可能需要删除所有字符与ASCII码< 32.这里有任何具体的UTF8的情况下,就像使用mbstowcs()?
注意到O(n^2) – 2011-05-24 02:40:56
除了多次调用'strlen'之外,更不用说移动整个字符串(前面的空格数量)时间 – Bwmat 2011-05-24 02:41:20
,所有对'memmove'的调用也没有多大帮助。 – Marlon 2011-05-24 02:41:50