string学习笔记1
?
c++初始化string對象的方式有以下幾種常見的方式。
/**定義和初始化string**/
? ? string s1; ? ? ? ? ? ? ?///默認的初始化,s1為一個空字符串。
? ? string s2 = s1; ? ? ? ? ///s2是s1的副本。
? ? string s3 = "abcd"; ? ? ///s3是該字符串字面值的副本。
? ? string s4("abcd"); ? ? ?///等價于s3="abcd",除了字符值最后的那個空字符“\0”。
? ? int n = 10;
? ? string s5(n,'c'); ? ? ?///s5的內容是cccccccccc,即n個字符c組成的串。
12345678910
tips—–直接初始化與拷貝初始化的區別
一般來說使用等號初始化一個變量就是拷貝初始化。
同理,不使用等號就是直接初始化。
12
? ? string s6 = "abcd"; ? ? ///拷貝初始化,拷貝的字符串為"abcd'\0'"。
? ? string s7("abcd"); ? ? ?///直接初始化,s7的值為"abcd"。
? ? string s8(10,'c'); ? ? ?///直接初始化,內容為cccccccccc。123
如同上面例子的s6就是拷貝初始化,s7和s8就是直接初始化。
當然以下寫法也可以做到拷貝初始化,也許有時候總會有人不想要直接初始化在字符串后面的’\0’這個空字符或者就是想強行拷貝初始化。
? ? /**合法但是不太推薦的初始化寫法*/
? ? string s9 = string(10,'c'); ///拷貝初始化
? ? ///等價于
? ? string temp(10,'c');
? ? string s10 = temp;12345
不過顯而易見,這樣子的寫法在大多數情況下既不好看也沒啥用。
————————————————
版權聲明:本文為CSDN博主「兩米長弦」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/peng0614/article/details/79532966
總結
以上是生活随笔為你收集整理的string学习笔记1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tar.gz 文件类型(tar文件的解压
- 下一篇: 最受Linux程序员欢迎的7个代码编辑器