zoukankan      html  css  js  c++  java
  • strcmp函数的使用



    ________________________________________________________________________________________________________________________________________________
    strcmp("ha","he")是可以的。  
      但是如下代码:  
      string   str1   =   "ha";  
      string   str2   =   "he";  
      strcmp(str1,   str2);  
      会产生如下的ERROR:  
       
      error   C2664:   'strcmp'   :   cannot   convert   parameter   1   from   'class   std::basic_string<char,struct   std::char_traits<char>,class   std::allocator<char>   >'   to   'const   char   *'  
      No   user-defined-conversion   operator   available   that   can   perform   this   conversion,   or   the   operator   cannot   be   called  
       
      为什么呢?
     
      _______________________________________________________________________________________________________________________________________________
     
      int   strcmp(const   char*   str1,   const   char*   str2);  
      这个函数是C标准库的函数,处理的是C风格0结尾字符数组字符串。  
      C++标准库中的string类有可以直接使用的<,>,<=,>=,==,!=运算符,通常也用不到这个函数。  
     
      _______________________________________________________________________________________________________________________________________________
     
      对,   strcmp()处理的是C风格的字符串。  
      而你用的是string类,2者是不同的。
     
      _______________________________________________________________________________________________________________________________________________
      ***********************************************************************************************************************************************
      strcmp函数原型为:  
      int   strcmp(  
            const   char   *string1,  
            const   char   *string2    
      );  
       
      其参数是传统的char   *型字符串,string型数据类型是不能作为其参数的。但可以通过string成员函数string::c_str()转换成char*类型。象这样调用:  
      strcmp(str1.c_str(),   str2.c_str())  
     
      ***********************************************************************************************************************************************
      -----------------------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    LeetCode对撞指针汇总
    167. Two Sum II
    215. Kth Largest Element in an Array
    2018Action Recognition from Skeleton Data via Analogical Generalization over Qualitative Representations
    题解 Educational Codeforces Round 84 (Rated for Div. 2) (CF1327)
    题解 JZPKIL
    题解 八省联考2018 / 九省联考2018
    题解 六省联考2017
    题解 Codeforces Round #621 (Div. 1 + Div. 2) (CF1307)
    题解Codeforces Round #620 (Div. 2)
  • 原文地址:https://www.cnblogs.com/jackhub/p/3147259.html
Copyright © 2011-2022 走看看