各种string乱花眼,论菜鸟的自我修养

称有时间捋下c系几个长得很像的string是什么意思

1. cstring和string.h

      c++支持了C-style string,即为以'\0'为结尾的字符数组。这个头文件下包含了诸如strlen(p),strcmp(p1,p1),strcat(p1,p2),strcpy(p1,p2),等c程序员耳熟能详的函数。但是C++ primer中不建议使用这中C风格的字符串,(C-style strings are a surprisingly rich source of bugs and are the root cause of many security problems. They are hard to use. .... For most applications, in addition to being safer, it is more efficient to use library strings rather than C-style strings.) 

       大家各执一词了,还有linus怒喷c++的文战,有兴趣可以搜下“Linux之父炮轰C++:糟糕程序员的垃圾语言”。我是个不求上进的人,不关心大佬们的逻辑,也不关心江湖走势,干我毛事,我只是想混口饭吃罢了。

另外

cplusplus.com给的解释是

header

(string.h)

C Strings
This header file defines several functions to manipulate C strings and arrays.

C++ primer给的解释是

This functions are defined in the cstring header, which is the C++ version of the C header string.h

2.CString

这是MFC的库函数啦,也就是说只能在win下跑吧,我是这么认为的。定义在afx.h头文件下, 我是要用CFileFind查找一个文件夹下所有文件才接触到这个的,用的乐此不疲呢~

3.三者的相互转换

1.string到char * 很好了 直接用函数c_str()

2.CString到char* 用 *.GetBuffer(*.GetLength()) * 代表Cstring对象名哦,不代表* 哦

3.CString 到string直接有个str()函数可以用把。

4.所以CString到char * 也可以有*.str().c_str()

5.string 到CSting string.c_str()即可

就用了这么多,随用随更新吧 

你可能感兴趣的:(C++Primer读书笔记)