python里的string,C++里的string,MFC里的QString,QT里的QString,Java里的string,可以看到几乎所有的语言以及第三方框架中都会有这种string的数据结构,而他们共同的特点就是可以面向对象编程。
C语言的字符串操作
在C语言中,有两种方式表示字符串:
-
一种是用字符数组来表示,比如char str[7]="RUNOOB",这样的字符串是可读可写的,但是数组有个弊端,你必须要固定声明他的数组长度,不然是不会被编译通过的,也就是字符数组其实极其不方便;
-
一种是使用字符串产量,也就是字符串指针。比如char* str="RUNOOB",这样的字符串只能读,不能写。所以这种方法也是极其不方便的,特别还涉及到内存和指针问题,很多程序员并不能掌控
C语言中的内存
这两种形式都是以‘\0’作为结束标志。C语言当中存在着非常多的字符操作函数库,就是为了给你在使用字符串功能操作的时候提供方便。
C++中string的操作
在C语言编程中,对于字符串的操作其实是非常令人揪心的,特别很多bug其实都是出自字符串的问题,而且经常要考虑长度以及内存。
而C++ string 与它们在C语言中的前身截然不同。