关于问题在 C++编程中,领导坚持用 char 而不用 string,string 有那么可怕吗?一共有 5 位热心网友为你解答:
【1】来自网友【理智的键盘】的最佳回答:
人家给你造好的房子不住,一定要自己从地基开始开始造。
【2】来自网友【Assault53484432】的最佳回答:
在 C++中优先使用 String 是一个良好的习惯。除非是 C 的死忠者习惯如此,否则应该使用 String 而不是 char。
char 是用来处理任何 8bit 数据类型的,逻辑值、整数、字符 ASCII 码等都可以。要用来处理字符串需要使用 char[]数组,比较麻烦,也不好控制。
String 是一个模板类,它是专门用来处理字符串的,封装了很多处理字符串的成员函数。并且它是 C++标准库的一部分,是所有 C++实现都支持的,也是 C++创始人推荐使用的。
术业有专攻,应该用哪一个不难选择吧。
【3】来自网友【智五星】的最佳回答:
开发 c++绝不能用 string,更不能用 char,也不能用 byte,sbyte,short,single,int,long,double 等等。所有类,对象以及 new 等等坚决不要碰。对于开发越大型工程来说,是不能使用任何变量和非变量的。但是可以写代码,一切都可以用纯代码,就是代码里不能有任何变量变体以及类结构体。除了寄存器之外,不能有任何跟内存相关的东西。不能跟操作系统有任何联系。
【4】来自网友【一个程序员的奋斗史】的最佳回答:
作为一名一线开发者,下面说说自己的看法。如有不同意见,欢迎留言讨论。
先说下自己的观点,个人不是很看好你们领导这种,坚持用 char 而不用 string。
既然选择了 C++,那么为什么不用 STL 早已为我们封装好的 string 呢?
string 其实现就是一个带有长度的 char * ,帮我们省去了自动管理内存的麻烦,都已经 0202 年了,你还会担心内存不够用吗?
个人猜想:
也许你的领导在某一项目中
使用了 string 过程中被深深的坑了一把,但是却不知道具体原因
,所以立下了祖训:禁止使用 string!
也许在调用某个厂商提供的动态库时,在接口中使用了 std::string 而不是 char * ,结果遇到了灵异事件,程序莫名的崩溃了,连自己的调试器都没有进入,至此,
禁止使用 string
这一莫名的结论就一直流传下来了。
那么如果我们真的遇到某些厂商的 SDK 出现这种奇葩库,怎么破?
答案很简单:
用发布那个 dll 的 VC 版本,再写个动态库做封装库,把接口转发成 char*
。
【5】来自网友【胡思胡想】的最佳回答:
看环境和问题,char 和 string 有不同的应用场景。不说明情况,谁知道怎么回事?总的来说,最大的可能是你懒不愿意考虑到底要用 char(?)几,所有的都用了 string,所以领导才强制你用 char。另外,数据库定义字段也有 char 的长度限制,你不过脑都用 string 等着爆 bug 吧。真实情况一般都是 char 用的多也稳定,少部分情况用 string。