在C++编程中,领导坚持用char而不用string,string有那么可怕吗?_c++中的char怎么用

由网友 快乐瓜瓜不瓜 提供的答案:

在C++编程中,char和string都是用于表示和处理字符数据的工具,但它们有一些区别和适用场景。

1. char:char是一种基本数据类型,用于表示单个字符。它可以用于存储和处理简单的字符数据,例如一个字母或一个数字。char数组可以用于表示字符串,但它们需要手动管理内存和字符串长度,并且在处理字符串操作时可能更加繁琐。

2. string:string是C++的标准库中的一个类,它提供了一套功能强大的字符串处理方法。使用string类,你可以方便地进行字符串连接、查找、替换、截取等各种字符串操作,而不需要手动管理内存和长度。string类还提供了许多成员函数和操作符重载,使字符串处理变得更加简洁和易读。

使用string类有以下优点:

- 更高的抽象级别:string类封装了字符串的底层实现,提供了更高的抽象级别,使得字符串操作更加方便和直观。

- 安全性:string类在内部管理字符串的内存分配和释放,避免了手动管理内存的潜在错误。

- 功能丰富:string类提供了许多有用的成员函数和操作符重载,使字符串操作更加灵活和高效。

然而,对于某些特定的场景和需求,使用char数组可能更加合适。比如在某些嵌入式系统或低级别的编程环境中,使用char数组可以更好地控制内存使用和执行效率。

综上所述,char和string在不同的情况下都有各自的优势和适用性。在一般的C++编程中,使用string类能够提供更好的字符串处理功能和便利性,但在特定的场景中,使用char数组可能更加适合。在团队协作中,建议与领导进行更深入的讨论,理解其对char的偏好,并根据具体需求和项目要求做出合适的选择。

由网友 Assault53484432 提供的答案:

在C++中优先使用String是一个良好的习惯。除非是C的死忠者习惯如此,否则应该使用String而不是char。

char是用来处理任何8bit数据类型的,逻辑值、整数、字符ASCII码等都可以。要用来处理字符串需要使用char[]数组,比较麻烦,也不好控制。

String是一个模板类,它是专门用来处理字符串的,封装了很多处理字符串的成员函数。并且它是C++标准库的一部分,是所有C++实现都支持的,也是C++创始人推荐使用的。

术业有专攻,应该用哪一个不难选择吧。

由网友 极语言编程 提供的答案:

开发c++绝不能用string,更不能用char,也不能用byte,sbyte,short,single,int,long,double等等。所有类,对象以及new等等坚决不要碰。对于开发越大型工程来说,是不能使用任何变量和非变量的。但是可以写代码,一切都可以用纯代码,就是代码里不能有任何变量变体以及类结构体。除了寄存器之外,不能有任何跟内存相关的东西。不能跟操作系统有任何联系。

由网友 三轮新司机 提供的答案:

在嵌入式上,char一定好用,string就不一定了。

C在开发效率上的确不去C++,但是至今没被淘汰,自然有其独特的优势。

你可以问问这个前辈,很有可能他会告诉你,这样写是为了可移植性。他可能并非不会用string

由网友 胡思胡想 提供的答案:

看环境和问题,char 和string 有不同的应用场景。不说明情况,谁知道怎么回事?总的来说,最大的可能是你懒不愿意考虑到底要用char(?)几,所有的都用了string,所以领导才强制你用char。另外,数据库定义字段也有char的长度限制,你不过脑都用string等着爆bug吧。真实情况一般都是char用的多也稳定,少部分情况用string。

由网友 轻风扶醉 提供的答案:

string 是C++ std里的模板类。 不是MFC 的CString类。C语言根本没有类的概念。

使用string 最大问题是需要运行时库,所以无法运行在无vc++201x的电脑上。CString 与char *都不会出现这种情况。

CString 比string更好用。所以如果你编写MFC程序最好用CString类。

如果使用结构体,必须使用char[],不能用类。特别是网络封包程序。

考虑到程序能在所有电脑运行,不需要额外安装运行库的情况下,只能强制使用char*

由网友 永远的奥古斯丁 提供的答案:

计算机编程语言中,string根本就不是一种数据类型。无数大佬创建的各种语言,从始致终都没有定义过string,不是没有原因的。

用char数组存储字符串,最大的好处是可控性和稳定性,对于做了什么自己心里清楚。

而string,只是方便写代码。

所以,对于团队来说,使用char的,一定会有自己团队喜欢的,经过深度测试的,配套的操作函数。同样方便写代码。

string只是对新人来说省事而已。

由网友 prompthu 提供的答案:

c++11以后全部用std:string已经没有任何问题了,如果新发布的dll要兼容c++以前版本,最好还是听取技术负责人的建议。早期不支持move语义的编译器,std:string的性能较差,这可能是某些早期项目不愿意采用std:string的原因之一

由网友 BWanger软件开发达人 提供的答案:

在VC++编程中CString是一个很重要的概念,用char很啰嗦而且易错。

但为什么有的人热衷于用char呢?快要被时代抛弃的人最爱用。你的领导很显然年龄很大,习惯了之前c语言的那一套路,对CString类没掌握好。

CString对+,一号的重载,对字符串的插入,删除,计算长度,以及格式化输出等等处理有绝对优势。比如对路经"D:\\windows\\tmp\\"的分析,只需要从右或者从左的第一个\\的位置,很容易剥离出d:及文件名,使处理准确。

另外,写法非常自由。可以把好多CString串用十号合在一起。MFC中的函数,字符串传递大都用CString进行。一般的赋值,用=号足矣,不再用那该死的strcpy了。

部分文章源于互联网收集,不代表默子网络立场,版权归原作者所有,如若转载,请注明出处:https://www.html369.cn/32343.html