c

    xiaoxiao2021-03-25  60

           c_str()和strcasecmp这两个函数以前没怎么玩过,今天碰到了,来学习一下。

     

    int main() { char str1[10] = "AB"; char str2[10] = "ab"; if(!strcasecmp(str1,str2)) { printf("yes\n"); } return 0; }

    打印:yes

     

    strcasecmp的作用是比较两个字符串是否相等,且不区分大小写。其头文件在<string.h>中。我这里的编译环境是gcc,我在VS2013上没编译过去,也是奇怪。

     

        c_str()属于c++中的函数,其目的是将c++对应的string转换成C风格的字符串。但C风格的字符串可以直接赋值给C++中的string,感觉这对C++有点不公平,但谁让C++是大哥大呢。

    先看一段代码:

     

    int main() { char str1[10] = "123"; //char str2[10]=str1;错误 string s1 = "abc"; string s2 = s1; cout << s2; return 0; }

     

    打印:abc

    C中字符串复制是通过strcpy来实现的,不能直接赋值。但C++中的string可以。

     

     

    int main() { char str1[10] = "123"; string s =str1; cout << s<<endl; string s1 = "456"; char str2[10]; strcpy(str2,s1.c_str()); printf("%s\n", str2); return 0; }

    打印:123

     

                456

     

    这两个函数很简单,只是之前用的少。

     

     

     

    转载请注明原文地址: https://ju.6miu.com/read-36999.html

    最新回复(0)