2016 - 2024

感恩一路有你

c语言中data函数的用法 在C 编程中,领导坚持用char而不用string,string有那么可怕吗?

浏览量:2278 时间:2021-03-15 05:51:54 作者:admin

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

在C中优先使用字符串是一个好习惯。除非C的顽固习惯,否则应该使用字符串而不是字符。

Char用于处理任何8位数据类型,如逻辑值、整数、字符ASCII码等。要处理字符串,需要使用Char[]数组,这很麻烦,也很难控制。

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

选择使用哪一种并不困难。

JAVA中为什么String比StringBuffer的处理效率更高?

事实上,字符串和StringBuffer都用于Java中的字符串处理。当然,这两个类通常与StringBuilder进行比较。

实际上,string、StringBuilder和StringBuffer都是基于字符数组实现的(jdk8是基于字节数组实现的)。但是这三者之间有什么相同点和不同点呢?

其中字符串类由final修改,因此其值是不可变的。当然,你也会有疑问,不能用“”进行字符串拼接操作,对吗?我打印了那个值,它确实改变了。在这方面,我需要解释一下,所谓的字符串拼接就是在生成新字符串之后,将新生成的字符串赋给原始变量。当然,还将有一个操作来确定字符串常量池中是否已经存在字符串值。但无论如何操作,最终的结果都是拼接后用新字符串替换旧字符串,或者重新赋值字符串变量。

StringBuffer和StringBuilder的值是可变的。如果只是在日常生活中使用,它们之间没有太大区别。但是,在多线程环境中使用StringBuffer效率较低。因为StringBuffer的方法是由synchronized关键字修改的,也就是说,当StringBuffer被多个线程共享时,会出现锁争用和等待问题,导致时间消耗增加。StringBuilder没有限制,但它容易出现线程安全问题。

因此,行业使用习惯是在单线程中使用StringBuilder,在多线程中使用StringBuffer。

c语言中data函数的用法 string的c_str函数 string c_str

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。