当前位置:  开发笔记 > 编程语言 > 正文

你如何处理C++中的字符串?

如何解决《你如何处理C++中的字符串?》经验,为你挑选了4个好方法。

在C++中使用字符串最喜欢哪种方式?一个C风格的chars?还是wchar_tCString,std::basic_string,std::string,BSTRCComBSTR

当然,每个都有自己的应用领域,但无论如何,这是你最喜欢的,为什么?



1> Zathrus..:

std :: string或std :: wstring,具体取决于您的需求.为什么?

他们是标准的

它们是便携式的

他们可以处理I18N

他们有性能保证(按照标准)

防止缓冲区溢出和类似攻击

可以根据需要轻松转换为其他类型

非常模板化,为您提供多种选择,同时减少代码膨胀并提高性能.真.无法处理模板的编译器现在已经很久了.

C风格的字符阵列只是在寻找麻烦.你仍然需要偶尔处理它们(这就是std :: string.c_str()的用途)但老实说 - C中最大的危险之一就是程序员用char*做着坏事并且清理干净缓冲区溢出.只是不要这样做.

wchar__t的数组是一样的,只是更大.

CString,BSTR和CComBSTR不是标准的,也不是可移植的.除非绝对强迫,否则避免它 最理想的是,只需在需要时将std :: string/std :: wstring转换为它们,这不应该非常昂贵.

请注意,std :: string只是std :: basic_string的子节点,但除非你有充分的理由不使用std :: string,否则最好还是使用std :: string.真的很好.让编译器在这种情况下处理优化.



2> James Curran..:

std :: string !!

他们称之为"标准"是有原因的.

basic_string是一个实现细节,应该被忽略.

BSTR和CComBSTR仅适用于与COM的interOp,仅适用于互操作时刻.



3> Lou Franco..:

std :: string,除非我需要调用专门接受您列出的其他API的API.



4> John D. Cook..:

这是一篇比较C++中最常见的字符串以及如何在它们之间进行转换的文章.解开Visual C++中的字符串

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有