CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

关于字符串比较之问题!在线

楼主ahui2k(小刘飞叉)2004-09-02 12:54:32 在 C++ Builder / 基础类 提问

我想比较两个字符串的前n位是否相同,本来有个函数:  
  原型:extern   int   bcmp(const   void   *s1,   const   void   *s2,   int   n);  
       
      用法:#include   <string.h>  
       
      功能:比较字符串s1和s2的前n个字节是否相等  
       
      说明:如果s1=s2或n=0则返回零,否则返回非零值。bcmp不检查NULL。  
  但是cb里面不认,头文件也包含了,其实头文件里根本就没有这个函数!!!!c++下有什么函数有相同功能? 问题点数:20、回复次数:10Top

1 楼sunliwen780502(孙立文)回复于 2004-09-02 12:58:33 得分 2

#include   <cstring>  
  或#include   <string>  
  试试!!!  
  Top

2 楼ahui2k(小刘飞叉)回复于 2004-09-02 13:02:17 得分 0

楼上,刚试完,不好使!我机器里的文件压根就没有这个函数Top

3 楼lovelylulu(forever)回复于 2004-09-02 13:26:41 得分 5

/*   STRNCMP.C   */  
  #include   <string.h>  
  #include   <stdio.h>  
   
  char   string1[]   =   "The   quick   brown   dog   jumps   over   the   lazy   fox";  
  char   string2[]   =   "The   QUICK   brown   fox   jumps   over   the   lazy   dog";  
   
  void   main(   void   )  
  {  
        char   tmp[20];  
        int   result;  
        printf(   "Compare   strings:\n\t\t%s\n\t\t%s\n\n",   string1,   string2   );  
        printf(   "Function:\tstrncmp   (first   10   characters   only)\n"   );  
        result   =   strncmp(   string1,   string2   ,   10   );  
        if(   result   >   0   )  
              strcpy(   tmp,   "greater   than"   );  
        else   if(   result   <   0   )  
              strcpy(   tmp,   "less   than"   );  
        else  
              strcpy(   tmp,   "equal   to"   );  
        printf(   "Result:\t\tString   1   is   %s   string   2\n\n",   tmp   );  
        printf(   "Function:\tstrnicmp   _strnicmp   (first   10   characters   only)\n"   );  
        result   =   _strnicmp(   string1,   string2,   10   );  
        if(   result   >   0   )  
              strcpy(   tmp,   "greater   than"   );  
        else   if(   result   <   0   )  
              strcpy(   tmp,   "less   than"   );  
        else  
              strcpy(   tmp,   "equal   to"   );  
        printf(   "Result:\t\tString   1   is   %s   string   2\n\n",   tmp   );  
  }  
   
  Top

4 楼constantine(飘遥的安吉儿)回复于 2004-09-02 13:32:16 得分 2

#include   <string>  
  using   namespace   std;  
  strncmp();  
  参数估计跟你那个差不多,Top

5 楼constantine(飘遥的安吉儿)回复于 2004-09-02 13:33:56 得分 0

好像strncmp是不用头文件的,你自己试一下看看Top

6 楼sunliwen780502(孙立文)回复于 2004-09-02 13:38:32 得分 5

#include   <StrUtils.hpp>  
  #include   <string>  
  int   bcmp(const   char   *s1,   const   char   *s2,   int   n)  
  {    
          AnsiString   str,   str2;  
          str   =   LeftStr(s1,   n);  
          str2   =   LeftStr(s2,   n);  
          while   ((*str   ==   *str2)   &&   (*str2   !=   0))  
          {  
                  str++;  
                  str2++;  
          }  
          return   *str   -   *str2;    
  }Top

7 楼weill(每天提一问,一天学一点)回复于 2004-09-02 13:41:18 得分 2

没有这种函数,BCB中。  
  Top

8 楼ahui2k(小刘飞叉)回复于 2004-09-02 14:08:38 得分 0

谢谢各位,我用的笨方法,用substring取出那部分,然后strcmp!!!!!Top

9 楼jiangchun_xn(GrayMemory)(再回头·灯火依旧·人不见·潸然泪下)回复于 2004-09-02 14:29:48 得分 2

 
   
      why   not   use   memcmp()?  
  Top

10 楼lidawen(Darwin)回复于 2004-09-02 15:01:20 得分 2

strncmp()Top

相关问题

  • 奇怪了...比较字符串的问题?在线等
  • 关于字符串比较大小问题,在线等!
  • 在线等待-----字符串合并???
  • 在线等待-----字符串合并???
  • delphi 字符串问题(在线)//
  • 读取字符串_在线等
  • 字符串问题,在线等
  • 字符串送分问题!!!在线等
  • 过滤字符串问题,在线等。。。。。
  • 字符串的小问题!!!在线等!!!

关键词

  • 函数
  • 文件
  • 字符串
  • strncmp
  • bcmp
  • str
  • tmp
  • result
  • include
  • const

得分解答快速导航

  • 帖主:ahui2k
  • sunliwen780502
  • lovelylulu
  • constantine
  • sunliwen780502
  • weill
  • jiangchun_xn
  • lidawen

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo