char *delete_space(char *a)
//删除字符串首尾空格,并把中间多余一个的空格去掉
{
int i = 0, j = 0, l = 0, k = 0;
static char c[128];
memset(c, 0, sizeof(c));
//清零的目的是为了可重入时上次的结果不影响本次
/*char buf[128] = {0};*/
/*strcpy(buf, a);*/
/*k = strlen(buf) - 1;*/
k = strlen(a) - 1;
//strlen可以得到有效元素的长度
if(0 == i)
//截取首尾非空格的字符部分
{
for(j = 0; a[j] == ' '; j++);
//扫描字符串首
for(;a[k] == ' '; k--);
//扫描字符串尾
}
for(l = 0, i = j; i <= k; i++)
{
if(a[i] == ' ' && a[i + 1] == ' ');
//如果当前是空格,并且下一个也是空格,则不把当前元素放入新的字符串
else
c[l++] = a[i];
//仅当前是空格或当前是有效元素,把数据放入新的字符串
}
return c;
//c是去除空格后新的字符串的地址
}