怎样删掉一个字符串的前后的空格

henryluo 2004-03-17 12:28:29
用哪个函数呀,找不到C语言手册,很痛苦的说
...全文
215 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadowWind 2004-09-20
  • 打赏
  • 举报
回复
mark
renfeiyang 2004-03-17
  • 打赏
  • 举报
回复
好像C不行吧,自己写一段小程序算了,我觉得至少要写三个小函数,分别去掉前空格、后空格和左右空格,这个过程中可以利用现成的一些字符串处理函数strcat()、strcpy()等函数
yeyuboy 2004-03-17
  • 打赏
  • 举报
回复
实在找不到就自已写一个好了,要不在网上搜一本函数手册,查起来很方便,这个函数我没用过,其他语言里见过,C中还没有见过。
fyfcom 2004-03-17
  • 打赏
  • 举报
回复
除去前面的空格是不是应该这样
sPtr=sSource;
while(*sPtr==' ')
sptr++;
sSource=sPtr;
liao2001 2004-03-17
  • 打赏
  • 举报
回复
我自己的函数库,呵呵:

void trim_left(char * str)
{
char *pCurr;

for(pCurr=str;*pCurr==' ';pCurr++);
if(pCurr==str)
return ;
for(;*str=*pCurr;pCurr++,str++);
}

void trim_right(char * str)
{
char *pCurr;

pCurr=str+strlen(str)-1;
for(;pCurr>=str&&*pCurr==' ';pCurr--);
*(pCurr+1)='\0';
}

void trim(char *str)
{
trim_right(str);
trim_left(str);
}
gchao3325 2004-03-17
  • 打赏
  • 举报
回复
去掉前面的有意义吗,要是前面空格后还有字符呢?要是真的要删,把EStarColors(魔化金身)的代码再修改一下,在return语句后面再插上如下代码:
sPtr = sSource -1
while(*sPtr == ' ')
sPtr--;
sSource=sPtr+1;
lubin59 2004-03-17
  • 打赏
  • 举报
回复
这只是去掉后面的空格的
lubin59 2004-03-17
  • 打赏
  • 举报
回复
void rTrim( char *sSource )
{
char *sPtr;
if ( sSource == NULL )
return;
sPtr = sSource + strlen(sSource) -1;

while( sPtr >= sSource && *sPtr == ' ' )
sPtr--;

*( sPtr + 1 ) = 0;
}

给个例子你看看,
sharkhuang 2004-03-17
  • 打赏
  • 举报
回复
isspace
jack_wq 2004-03-17
  • 打赏
  • 举报
回复
因为空格被认为是字符串的一种,所以没有现成的函数,你可以在字符串结尾赋值'\0'就可以了!strcat和strcpy会把字符串拷贝到带有空格字符串的结尾,不能实现你的想法!
字符串前面的空格要自己手动程序式现!
doublesword 2004-03-17
  • 打赏
  • 举报
回复
自己写吧,很简单的!
lufeiyuan 2004-03-17
  • 打赏
  • 举报
回复
其实就是移动,覆盖(简单)
Bill_rao 2004-03-17
  • 打赏
  • 举报
回复
如果只是想trim,而不分左右,那就这样:
char* trim(char* string)
{
char* ptr;
ptr = string;
while ( isspace( ptr ) ) ptr++;
string = ptr; /* trim left-hand spaces. */
ptr = string + strlen(string) -1;
while ( isspace( ptr ) ) ptr--; /* trim right-hand spaces. */
ptr = 0; /* add terminal character. */
return string;
}
csdnMayi 2004-03-17
  • 打赏
  • 举报
回复
不好意思,刚才误操作了。
应该是:
while (*sPtr == ' ') sPtr++;

(*sPtr+1) = '\0';
sSource = sPtr;
是否如此,请各位指教!
csdnMayi 2004-03-17
  • 打赏
  • 举报
回复
楼上的,你的sptr++;只是移动吧,并没有实质的处理,
我想是要这样吧:
while (*sPtr == ' ')
sptr++;

70,032

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧