黑马程序员技术交流社区
标题:
关于String和Char
[打印本页]
作者:
田富丰
时间:
2013-12-23 14:26
标题:
关于String和Char
本帖最后由 田富丰 于 2013-12-23 15:28 编辑
Char一般在什么情况下使用?为什么不都用String?
作者:
呆呆呆
时间:
2013-12-23 14:41
两者的区别:
string的内存管理是由系统处理,除非系统内存池用完,不然不会出现这种内存问题。
char *的内存管理由用户自己处理,很容易出现内存不足的问题。
当我们要存一个串,但是不知道其他需要多少内存时, 用string来处理就最好不过了。
当你知道了存储的内存的时候,可以用char *,但是不如用string的好,用指针总会有
隐患。
用string还可以使用各种成员函数来处理串的每一个字符,方便处理。
用char *处理串,就不如string的方便了,没有相应的函数来直接调用,而是要自己编
写函数来完成串的处理,而且处理过程中用指针还很容易出现内存问题。
我建议尽量使用string,不用char*;
尽量使用vector(关联数组),不用数组;
尽量使用迭代器,而不用指针。
作者:
panzhenglian
时间:
2013-12-23 14:44
个人觉得吧,char属于一个小型容器,String呢,则是一个超大的容器,比如你想装钱呢,买个小钱包就可以了,没有必要买一个大包来装钱,还有char类型比整数型"小",如果Sting类型和整数相加,整数会和String连在一起为字符串,但是char和整数型相加,会被ASK码表转换成整数型,最终得到整数型数据,至于用到的地方我就不太了解了,希望能对楼主有所帮助{:soso_e113:}
作者:
田富丰
时间:
2013-12-23 15:28
谢谢 大家的解答 大概我懂了1!谢谢1!
作者:
张天军
时间:
2013-12-23 16:10
1,char可以衍生出字符数组;char[ ] ,而String字符串做不到;
2,String字符串有很多函数可以调用,比如反转之类的,这些数组要实现就要自己写,当然也可以转成字符串实现。
3,字符串与字符数组可以互相转换;
4, 1楼说的char*是char的一个特殊语言,专门用于指以'\0'为结束的字符串;
希望可以帮助到楼主!!
作者:
卖火柴
时间:
2013-12-23 16:45
char定义时用单引号,只能有一个字母,数字。char c='c';
而String用双引号,可以是一个,也可能是多个字母,汉字等。就是所谓的字符串。String s="adsaf";
char只是一个基本类型,而String 是一个类,可以直接引用。
比如char c='c';不能直接对c调用方法。
String s="abc"; 这时可以调用s.charAt(0);等方法,因为String是类,这是就是对象的调用了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2