91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++字符串有哪些用法

發布時間:2021-10-15 11:51:59 來源:億速云 閱讀:155 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“C++字符串有哪些用法”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C++字符串有哪些用法”這篇文章吧。

1.C++字符串之 傳統字符串

a) char ch2[] = {“liangdiamond”}

b) char ch3[] = {“hello world”}

其中關于傳統字符串,有幾個常用的函數

a) strcpy()函數

b) strcat()函數

c) strlen()函數

d) strcmp()函數

e) strlwr()函數:大寫變為小寫

f) strupr()函數,小寫變為大寫

2. C++字符串之字符數組

從表面上看,一個字符串是一個字符數組,但在c++語言中,它們不同。字符串是以’\0’結束的字符型數組。下面這段代碼展示字符串和字符數組的區別:

#include < iostream> using namespace std;  int main()  {  char a[] = {"hello"};  char b[] = {'h','e','l','l','o'};  int la = 0;  int lb = 0;  cout< < "The length of a[]:"< < sizeof(a)/sizeof(char)< < endl;  cout< < "The length of b[]:"< < sizeof(b)/sizeof(char)< < endl;  system("Pause");  return 0;  }

可以修改程序:

#include < iostream> using namespace std;  int main()  {  char a[] = {"hello"};  char b[] = {'h','e','l','l','o','\0'};  int la = 0;  int lb = 0;  cout< < "b="< < b< < endl;  cout< < "The length of a[]:"< < sizeof(a)/sizeof(char)< < endl;  cout< < "The length of b[]:"< < sizeof(b)/sizeof(char)< < endl;  system("Pause");  return 0;  }

但是數組名就是數組的首地址,所以數組名本身就可以理解為一個指針,只不過,它是指針常量,所謂指針常量,就是指針不能改變所指向的地址了,但是它所指向的地址中的值可以改變。
例如:

#include < iostream> using namespace std;  int main()  {  char a[] = {"hello"};  char b[] = {'h','e','l','l','o','\0'};  a++;  system("Pause");  return 0;  }

編譯報錯。

C++字符串中字符數組和字符指針雖然在形式上很接近,但在內存空間的分配和使用上還是有很大差別。數組名不是一個運行時的實體,因此數組本身是有空間的,這個空間由編譯器負責分配。而指針是一個變量(運行時實體),它所指向的空間是否合法要在運行時決定。

#include < iostream> using namespace std;  int main()  {  char s[] = "abc";  char* p = "abc";  s[0] = 'x';  cout< < s< < endl;  //p[0] = 'x'; 編譯報錯  cout< < p< < endl;  system("Pause");  return 0;  }

S的地址和p所指向的地址并不是一個地方,可以推斷0x00417704是常量區。所以貌似不能改。用反匯編其實看的更清楚一點。指針好就好在它能指向內存,不是ROM 區的好似都能改。

以上是“C++字符串有哪些用法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

开原市| 宜州市| 中山市| 久治县| 砀山县| 乌拉特中旗| 泽普县| 吐鲁番市| 曲靖市| 临湘市| 丰县| 北川| 海安县| 唐山市| 儋州市| 鸡东县| 营山县| 乾安县| 益阳市| 普洱| 长治市| 华容县| 德昌县| 韩城市| 阿图什市| 扎赉特旗| 青田县| 齐齐哈尔市| 大足县| 呈贡县| 茶陵县| 大悟县| 巴彦淖尔市| 乡宁县| 罗甸县| 长垣县| 灵丘县| 纳雍县| 诏安县| 曲水县| 永康市|