最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析C++中的字符串處理函數(shù)和指針

 更新時間:2015年09月12日 17:50:42   投稿:goldensun  
這篇文章主要介紹了解析C++中的字符串處理函數(shù)和指針,是C++入門學習中的基礎知識,需要的朋友可以參考下

C++字符串處理函數(shù)
字符串連接函數(shù) strcat

其函數(shù)原型為

  strcat(char[],const char[]);


strcat是string catenate(字符串連接)的縮寫。該函數(shù)有兩個字符數(shù)組的參數(shù),函數(shù)的作用是:將第二個字符數(shù)組中的字符串連接到前面字符數(shù)組的字符串的后面。第二個字符數(shù)組被指定為const,以保證該數(shù)組中的內(nèi)容不會在函數(shù)調(diào)用期間修改。連接后的字符串放在第一個字符數(shù)組中,函數(shù)調(diào)用后得到的函數(shù)值,就是第一個字符數(shù)組的地址。例如:

  char str1[30]=″People′s Republic of ″;
  char str2[]=″China″;
  cout<<strcat(str1, str2)); //調(diào)用strcat函數(shù)


輸出:

People′s Republic of China

連接前后的狀況如圖所示。


字符串復制函數(shù)strcpy

其函數(shù)原型為:

  strcpy(char[], const char[]);


strcpy是string copy(字符串復制)的縮寫。它的作用是將第二個字符數(shù)組中的字符串復制到第一個字符數(shù)組中去,將第一個字符數(shù)組中的相應字符覆蓋。例如:

  char str1[10], str2[]=″China″;
  strcpy(str1, str2);


執(zhí)行后,str2中的5個字符″China″和′\0′(共6個字符)復制到數(shù)組str1中。

關(guān)于字符串復制函數(shù)strcpy的幾點說明:
在調(diào)用strcpy函數(shù)時,第一個參數(shù)必須是數(shù)組名(如str1),第二個參數(shù)可以是字符數(shù)組名,也可以是一個字符串常量。
可以用strcpy函數(shù)將一個字符串中前若干個字符復制到字符數(shù)組中去。
只能通過調(diào)用strcpy函數(shù)來實現(xiàn)將一個字符串賦給一個字符數(shù)組,而不能用賦值語句將一個字符串常量或字符數(shù)組直接賦給一個字符數(shù)組。
字符串比較函數(shù)strcmp

其函數(shù)原型為

  strcmp(const char[],const char[]);


strcmp是string compare(字符串比較)的縮寫。作用是比較兩個字符串。由于這兩個字符數(shù)組只參加比較而不應改變其內(nèi)容,因此兩個參數(shù)都加上const聲明。以下寫法是合法的:

  strcmp(str1, str2);
  strcmp(″China″, ″Korea″);
  strcmp(str1, ″Beijing″);

比較的結(jié)果由函數(shù)值帶回:
如果字符串1=字符串2,函數(shù)值為0。
如果字符串1>字符串2,函數(shù)值為一正整數(shù)。
如果字符串1<字符串2,函數(shù)值為一負整數(shù)。

字符串比較的規(guī)則與其他語言中的規(guī)則相同,即對兩個字符串自左至右逐個字符相比(按ASCII碼值大小比較),直到出現(xiàn)不同的字符或遇到′\0′為止。如全部字符相同,則認為相等;若出現(xiàn)不相同的字符,則以第一個不相同的字符的比較結(jié)果為準。

注意:對兩個字符串比較,不能用以下形式:

  if(str1>str2) cout<<″yes″;


字符數(shù)組名str1和str2代表數(shù)組地址,上面寫法表示將兩個數(shù)組地址進行比較,而不是對數(shù)組中的字符串進行比較。對兩個字符串比較應該用

  if(strcmp(str1, str2)>0) cout<<″yes″;


字符串長度函數(shù)strlen

函數(shù)原型為:

  strlen(const char[]);


strlen是string length(字符串長度)的縮寫。它是測試字符串長度的函數(shù)。其函數(shù)的值為字符串中的實際長度,不包括′\0′在內(nèi)。如:

  char str[10]=″China″;
  cout<<strlen(str);


輸出結(jié)果不是10,也不是6,而是5。

以上是幾種常用的字符串處理函數(shù),除此之外還有其他一些函數(shù)。

C++指針的概念
為了說清楚什么是指針,必須弄清楚數(shù)據(jù)在內(nèi)存中是如何存儲的,又是如何讀取的。

如果在程序中定義了一個變量,在編譯時就給這個變量分配內(nèi)存單元。系統(tǒng)根據(jù)程序中定義的變量類型,分配一定長度的空間。例如,C++編譯系統(tǒng)一般為整型變量分配4個字節(jié),為單精度浮點型變量分配4個字節(jié),為字符型變量分配1個字節(jié)。內(nèi)存區(qū)的每一個字節(jié)有一個編號,這圖就是“地址”。


請務必弄清楚一個內(nèi)存單元的地址與內(nèi)存單元的內(nèi)容這兩個概念的區(qū)別。在程序中一般是通過變量名來對內(nèi)存單元進行存取操作的。其實程序經(jīng)過編譯以后已經(jīng)將變量名轉(zhuǎn)換為變量的地址,對變量值的存取都是通過地址進行的。這種按變量地址存取變量值的方式稱為直接存取方式,或直接訪問方式。

還可以采用另一種稱為間接存取(間接訪問)的方式。可以在程序中定義這樣一種特殊的變量,它是專門用來存放地址的。

上圖是直接訪問和間接訪問的示意圖。為了將數(shù)值3送到變量中,可以有兩種方法:
直接將數(shù)3送到整型變量i所標識的單元中。
將3送到指針變量i_pointer所指向的單元(這就是變量i所標識的單元)中。見圖


所謂指向,就是通過地址來體現(xiàn)的。

由于通過地址能找到所需的變量單元,因此可以說,地址指向該變量單元。因此將地址形象化地稱為“指針”,一個變量的地址稱為該變量的指針。

如果有一個變量是專門用來存放另一變量地址(即指針)的,則它稱為指針變量。指針變量的值(即指針變量中存放的值)是地址(即指針)。

相關(guān)文章

  • C語言實現(xiàn)實驗設備管理系統(tǒng)

    C語言實現(xiàn)實驗設備管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)實驗設備管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++實現(xiàn)和電腦對戰(zhàn)三子棋實例

    C++實現(xiàn)和電腦對戰(zhàn)三子棋實例

    大家好,本篇文章主要講的是C++實現(xiàn)和電腦對戰(zhàn)三子棋實例,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 從頭學習C語言之if語句的使用

    從頭學習C語言之if語句的使用

    這篇文章主要為大家詳細介紹了C語言之if語句的使用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • C++哈希應用之位圖,哈希切分與布隆過濾器詳解

    C++哈希應用之位圖,哈希切分與布隆過濾器詳解

    這篇文章主要為大家詳細介紹了C++哈希應用中的位圖、哈希切分與布隆過濾器,文中的示例代碼講解詳細,具有一定的學習價值,需要的可以參考一下
    2023-04-04
  • CLion開發(fā)stm32?使用DSP庫的操作方法

    CLion開發(fā)stm32?使用DSP庫的操作方法

    這篇文章主要介紹了CLion開發(fā)stm32?使用DSP庫的方法,首先需要添加DSP庫文件到工程目錄,修改CMakeLists,添加STM32HAL庫,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • C++中析構(gòu)函數(shù)為何是虛函數(shù)

    C++中析構(gòu)函數(shù)為何是虛函數(shù)

    這篇文章主要介紹了C++中析構(gòu)函數(shù)為何是虛函數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C++基礎之this指針與另一種“多態(tài)”

    C++基礎之this指針與另一種“多態(tài)”

    this指針識別了同一個類的不同的對象,換句話說,this指針使得成員函數(shù)可以訪問同一個類的不同對象。再深入一點,this指針使得成員函數(shù)會因為this指針的不同而訪問到了不同的成員變量
    2013-07-07
  • QSS樣式表實現(xiàn)界面換膚功能

    QSS樣式表實現(xiàn)界面換膚功能

    這篇文章主要介紹了QSS樣式表實現(xiàn)界面換膚功能,對QSS樣式表進行簡單介紹,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • 遞歸法求最大公約數(shù)和最小公倍數(shù)的實現(xiàn)代碼

    遞歸法求最大公約數(shù)和最小公倍數(shù)的實現(xiàn)代碼

    今天整理了一下用遞歸法求最大公約數(shù)(gcd)和最小公倍數(shù)(lcm)。主要的工作是求最大公約數(shù)。數(shù)學上可以用輾轉(zhuǎn)法求最大公約數(shù)
    2013-05-05
  • C語言中數(shù)組常用的一些排序算法小結(jié)

    C語言中數(shù)組常用的一些排序算法小結(jié)

    數(shù)組的排序方法有很多,效率也各不相同,下面這篇文章主要給大家介紹了關(guān)于C語言中數(shù)組常用的一些排序算法的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01

最新評論

威信县| 余江县| 鹤庆县| 惠水县| 印江| 广西| 石嘴山市| 扬州市| 海原县| 开远市| 隆林| 广水市| 海伦市| 句容市| 西安市| 岱山县| 阿拉尔市| 井陉县| 罗平县| 海淀区| 顺昌县| 扬州市| 娄底市| 云浮市| 惠州市| 烟台市| 名山县| 灵武市| 峨眉山市| 桦川县| 吉木萨尔县| 柞水县| 宜宾县| 阳泉市| 天气| 内乡县| 冀州市| 大新县| 新疆| 尖扎县| 洛阳市|