#include<iostream>
using namespace std;
/**只删除字符串最前和最后的空格,如:" 1 2 " ——> "1 2" **/
char *delete_space(char src[])
{
char *ret = src;
char *p1 = src;
char *p2;
if (NULL == src)
return NULL;
while (*p1 == ' ' || *p1 == '\t')//跳过最前面空白字符(这里增加了2楼提到的'\t'字符)
p1++;
p2 = p1;
while (*p2)
p2++;
while (--p2 >= src && (*p2== ' ' || *p2 == '\t'))//跳过最后面空白字符
;
while (p1 <= p2)
*src++ = *p1++;//拷贝中间部分
*src = 0;
return ret;
}
int main()
{
char src[] = " dhasd uf sduf sfhsu fsh ";
cout<<delete_space(src)<<endl;
system("pause");
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
char* eraseSpace(char *str)
{
/************************************************************************/
/* 思想:指针i,j,从字符串两头向中间扫描,分别停止于一个非空格字符,然后开始移动字符串*/
/************************************************************************/
int i=-1,j=strlen(str),cur=0;
while(str[++i]==' ')
{
}
while(str[--j]==' ')
{
}
for(;i<=j;++i,++cur)
{
str[cur]=str[i];
}
str[cur]='\0';
return str;
}
int main()
{
char str[20]=" A Bd ";
cout<<eraseSpace(str)<<"结束测试"<<endl;
return 0;
}
阅读(1034) | 评论(0) | 转发(0) |