免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5752 | 回复: 11
打印 上一主题 下一主题

[函数] 关于C去空格的函数,高手请指教! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-22 22:03 |只看该作者 |倒序浏览
这是我编我的一个去前后格的函数,
    # include <stdio.h>;
# include <string.h>;
void trim(char *ss){
char *p;
int d;
p=ss;
while(*p==' '){
*p=*(p+1);
  p++;
}
d=strlen(p);
while(*(p+d-1)==' '){
   *(p+d-1)='\0';
    d--;
}
  return p;
}
我想编个去C全部空格的函数,怎么也编不出,望高手指点一下.多谢,感激万分!!!!

论坛徽章:
0
2 [报告]
发表于 2003-07-22 22:30 |只看该作者

关于C去空格的函数,高手请指教!

将字符串看做是由' '分段的字符串段,先得到每段的头和长度,
在 memcpy到一个新的字符串上,删除旧字符串,返回新字符串。

论坛徽章:
0
3 [报告]
发表于 2003-07-22 22:37 |只看该作者

关于C去空格的函数,高手请指教!

memcpy怎么用呀,没用过,不会,只知道有个MEMSET,不好意思,
还有,照你说的方法,我还是要先去前后空格,我想一次全部去掉,怎么写呀,
我想有指针传出来.能不能写一个让我看一下,谢谢!

论坛徽章:
0
4 [报告]
发表于 2003-07-22 22:38 |只看该作者

关于C去空格的函数,高手请指教!

# include <stdio.h>;
# include <string.h>;
void trim(char *ss){
char p[256];
int i,j=0;

strcpy( p, ss );
memset( ss, 0x00, strlen(ss));
for(i=0; i<strlen(p)+1; i++)
      if( p != ' ') ss[j++]=p;

return;
}

论坛徽章:
0
5 [报告]
发表于 2003-07-22 22:41 |只看该作者

关于C去空格的函数,高手请指教!



  1. #include <string.h>;
  2. // ConCate plain strings
  3. char *ccstr( char *str)
  4. {
  5.     char *tok = " ", p;

  6.     p = strtok( str, tok );
  7.     while( p != NULL )
  8.     {
  9.           if( p != str )
  10.                strcat( str, p );
  11.           p = strtok( NULL, tok );
  12.     }
  13.     return( str );
  14. }

复制代码

论坛徽章:
0
6 [报告]
发表于 2003-07-22 22:41 |只看该作者

关于C去空格的函数,高手请指教!

我不想用定长的字符数组,这样大了,浪费资源,小了可能会不够,我想用指针.
如果用字符数组,我做出来.

论坛徽章:
0
7 [报告]
发表于 2003-07-22 22:46 |只看该作者

关于C去空格的函数,高手请指教!

原帖由 "boczjf" 发表:
return;
}
   

这样的是不可取的。

论坛徽章:
0
8 [报告]
发表于 2003-07-22 22:48 |只看该作者

关于C去空格的函数,高手请指教!

#include <string.h>;
// ConCate plain strings
char *ccstr( char *str)
{
    char *tok = " ", p;

    p = strtok( str, tok );
    while( p != NULL )
    {
          if( p != str )
               strcat( str, p );
          p = strtok( NULL, tok );
    }
    return( str );
}


这样好,不费内存

论坛徽章:
0
9 [报告]
发表于 2003-07-22 22:57 |只看该作者

关于C去空格的函数,高手请指教!

strtok是什么呀,我不知道,能不能讲一下呀
还有memcpy,
麻烦,说一下,谢谢

论坛徽章:
0
10 [报告]
发表于 2003-07-23 07:42 |只看该作者

关于C去空格的函数,高手请指教!

#include <string.h>;
// ConCate plain strings
char *ccstr( char *str)
{
    char *tok = " ", p;

    p = strtok( str, tok );
    while( p != NULL )
    {
          if( p != str )
               strcat( str, p );
          p = strtok( NULL, tok );
    }
    return( str );
}
}
   

这个方法好!不过
   
  1. char *tok = " ", p;
复制代码

应该是:
   
  1. char *tok = " ", *p;
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP