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
这两个函数很简单,只是之前用的少。