本文主要是介绍字符串字面值、C风格字符串、C++风格字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
详细见次品懒人的总结:http://www.cnblogs.com/coveted/archive/2011/12/28/2304509.html
c字符串、string对象、字符串字面值的区别
字符串的连接:
1.c++中string可以替代c中的char数组且前者用起来更方便。连接两个string对象只需用'+';c字符串是用char数组实现的。以下都称c字符串为char数组
例如:string s1="hello",s2="world";
string s3=s1+s2; //也可以s3=s1+"world"
cout<<s3<<endl;//结果为helloworld
当然还可以用+=连接。
2.还可以这样连接一个string对象和char数组。
例如:string s1="hello";
char s2[]="world";
cout<<s1+s2<<endl;//输出结果为helloworld
但不能这样连接两个char数组或字符字面值。
例如:string s1="hello";
string s2="world";
string s3=s1+"world";//正确,可以连接一个string对象和字符串字面值
string s4="hello"+"world";//错误,不能这样连接连个字符串字面值
char s5[]="world";
string s6=s1+s5;//正确,可以连接一个string对象和char数组
char s7[]="hello";
stirng s8=s7+s5;//错误,不能这样连接两个char数组。
总而言之只能用+或+=连接两个string对象或一个string对象和字符串字面值或一个string对象和char数组。
连接一个string对象和字符串字面值或char数组或返回的都是string对象,所以可以连接一个string对象和字符串字面值(或char数组)后再连接一个字符串字面值(或char数组)。
例如:string s;//初始化为空
char s1[]="hello";
char s2[]="world";
s=s+s1+s2;//正确
\n是换行符,\0是结束符
string.size()是计算字符串长度(不包括\0)。string.size()是通过计数器来保存长度的。在本人电脑上,在dev c++地下,向string尾部添加多个'\0'时size()相应增加。
sizeof是计算占用空间大小。
这篇关于字符串字面值、C风格字符串、C++风格字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!