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

適合初學(xué)者的C語言字符串講解

 更新時(shí)間:2022年04月09日 12:42:51   作者:每天都要學(xué)一點(diǎn)哦  
字符串主要用于編程,概念說明、函數(shù)解釋、用法詳述見正文,這里補(bǔ)充一點(diǎn):字符串在存儲(chǔ)上類似字符數(shù)組,所以它每一位的單個(gè)元素都是可以提取的

這一篇博客我們來了解一下字符串,看下面這個(gè)我們熟知的也是最先學(xué)習(xí)的代碼

"Hello world!"

這一堆的字母就是字符串字面值,簡稱字符串,每一個(gè)字母都是一個(gè)字符,字符串需要用" "雙引號(hào)來引起,字符需要用’ '單引號(hào)來引起,就像下面

"Hello world!"  //字符串
'a'  //字符
'!'  //字符

字符串也算常量,上面三條都算字面常量,之前的講常量的時(shí)候就舉過這種例子

那么字符串有什么用呢?

假設(shè)我們要把下面的字符串存起來,那么我們需要怎么存呢?

"abcdef"

我們可以把它放在字符串?dāng)?shù)組里,有兩種形式如下:

#include<stdio.h>

int main()
{
char arr1[10]="abcdef";                     //形式一
char arr2[10]={'a','b','c','d','e','f'};    //形式二

//我們打印一下這些字符串
printf("%s\n",arr1);
printf("%s\n",arr2);

return 0;
}

運(yùn)行的結(jié)果:

abcdef

abcdef

請(qǐng)?zhí)砑訄D片描述

把"abcdef"都存在arr[ ]這個(gè)數(shù)組里面,[ ]里面數(shù)是多少,就能存多少字符

arr[10]可以存10個(gè)字符 ,但一定要不小于你要存的字符

你也可以不寫[ ]里面的數(shù)字,它會(huì)自己根據(jù)你要存的字符串來調(diào)整,就像這樣

#include<stdio.h>

int main()
{
char arr[]="abcdef";    //char-字符類型,沒有字符串類型哦
return 0;
}

那這兩種形式有什么區(qū)別呢?

我們不寫arr[ ]里面的數(shù)字,我們來看一下

#include<stdio.h>

int main()
{
char arr1[]="abcdef";
char arr2[]={'a','b','c','d','e','f'};

//我們打印一下這些字符串
printf("%s\n",arr1);
printf("%s\n",arr2);

return 0;
}

運(yùn)行的結(jié)果:

abcdef

abcdef燙燙燙燙燙abcdef

請(qǐng)?zhí)砑訄D片描述

哎,發(fā)現(xiàn)沒有,它們不一樣了,那為什么會(huì)出現(xiàn)這種情況呢?

先想一個(gè)問題,它是根據(jù)什么來停止打印的?

(啊,你會(huì)問:它們后面啥都沒有,我怎么會(huì)知道它們根據(jù)什么來停下來的)

那里確實(shí)看不見有什么標(biāo)志,但是那個(gè)標(biāo)志就是看不見的,字符串的結(jié)束標(biāo)志是\0,它是一個(gè)我們馬上就會(huì)學(xué)到的轉(zhuǎn)義字符

char arr1[]="abcdef";

這個(gè)形式一,字符串后面就默認(rèn)帶了一個(gè)\0

char arr2[]={'a','b','c','d','e','f'};

這個(gè)形式二,后面沒有\(zhòng)0

懂了吧,printf去打印的時(shí)候要識(shí)別到\0才會(huì)結(jié)束

第一個(gè)形式最后一個(gè)字符結(jié)束就識(shí)別到了\0,然后結(jié)束

第二個(gè)形式識(shí)別到最后的f,一直都沒有識(shí)別到\0,就一直打印下去,最后就出現(xiàn)剛才的結(jié)果

那么如果我們給第二個(gè)形式加一個(gè)\0作為結(jié)束標(biāo)志怎么樣,不要光想,我們來做一下試試

#include<stdio.h>

int main()
{
char arr1[]="abcdef\0";   //我們也試一下給它也加一個(gè)\0
char arr2[]={'a','b','c','d','e','f','\0'};

//我們打印一下這些字符串
printf("%s\n",arr1);    //%s是打印字符串的
printf("%s\n",arr2);    //%s是打印字符串的
 
return 0;
}

運(yùn)行的結(jié)果:

abcdef

abcdef

請(qǐng)?zhí)砑訄D片描述

結(jié)果運(yùn)行正常了

那么\0算不算里面的字符串長度的一部分呢?

又來介紹一個(gè)好東西,strlen,它可以計(jì)算一個(gè)字符串長度的函數(shù),但是使用它還是跟以前一樣,需要給另一個(gè)頭文件string.h打一下招呼才能使用它,我們來實(shí)操一下:

#include<string.h>
#include<string.h>

int main()
{
	char a[] = "abc";
	char b[] = "abc\0";
	printf("%d", strlen(a));
	printf("%d", strlen(b));
	return 0;
}

運(yùn)行結(jié)果:

3

3

請(qǐng)?zhí)砑訄D片描述

"abc"

這個(gè)字符串的長度為3,所以我們可以知道看不見的\0并不算在長度里面的,就算在后面加上\0也是一樣

大家可以試一試計(jì)算一下第二種形式不加\0情況下的字符串長度,保持好奇心,去自己嘗試一下。

就這樣,我們把"abcdef"這個(gè)數(shù)組儲(chǔ)存起來了,那我們要使用里面的字符怎么辦?我們還需要再了解一個(gè)知識(shí):

調(diào)用arr里面字符,用arr[2]就可以調(diào)用c,用arr[0]就可以調(diào)用a,它們的對(duì)應(yīng)關(guān)系也就是:

 a  b  c  d  e  f
 0  1  2  3  4  5

我們來實(shí)驗(yàn)一下

#include<stdio.h>

int main()
{
char arr[]="abcdef";
printf("%c",arr[2]);
return 0;
}

運(yùn)行結(jié)果:

a

請(qǐng)?zhí)砑訄D片描述

#include<stdio.h>

int main()
{
char arr[]="abcdef";
printf("%c",arr[0]);
return 0;
}

運(yùn)行結(jié)果:

a

請(qǐng)?zhí)砑訄D片描述

到此這篇關(guān)于適合初學(xué)者的C語言字符串講解的文章就介紹到這了,更多相關(guān)C語言 字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mfc文件操作CFile類之創(chuàng)建文件的方法

    mfc文件操作CFile類之創(chuàng)建文件的方法

    這篇文章主要介紹了mfc文件操作CFile類之創(chuàng)建文件的方法,需要的朋友可以參考下
    2019-04-04
  • C++小知識(shí):大于0并不意味著等于1

    C++小知識(shí):大于0并不意味著等于1

    今天小編就為大家分享一篇關(guān)于C++小知識(shí):大于0并不意味著等于1,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • C語言中的文件操作詳解

    C語言中的文件操作詳解

    這篇文章主要介紹了C語言中的文件操作詳解,使用文件可以將數(shù)據(jù)直接存放到電腦的硬盤上,做到了數(shù)據(jù)的持久化
    2022-07-07
  • 帶你從頭學(xué)習(xí)C++的封裝

    帶你從頭學(xué)習(xí)C++的封裝

    這篇文章主要為大家從頭學(xué)習(xí)了C++的封裝,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • matlab鳥群算法求解車間調(diào)度問題詳解及實(shí)現(xiàn)源碼

    matlab鳥群算法求解車間調(diào)度問題詳解及實(shí)現(xiàn)源碼

    這篇文章主要為大家介紹了matlab鳥群算法求解車間調(diào)度的問題分析及實(shí)現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • C++編寫簡單的打靶游戲

    C++編寫簡單的打靶游戲

    這篇文章主要介紹了使用C++編寫簡單的打靶游戲,本人也是個(gè)菜鳥,水平有限,有錯(cuò)誤遺漏的地方在所難免,大家看看就好。
    2015-03-03
  • C++?Queue隊(duì)列類模版實(shí)例詳解

    C++?Queue隊(duì)列類模版實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹C++?Queue隊(duì)列類模版實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Qt之ui在程序中的使用-多繼承法介紹

    Qt之ui在程序中的使用-多繼承法介紹

    本文將介紹Qt之ui在程序中的使用-多繼承法,需要的朋友可以參考
    2012-11-11
  • C++實(shí)現(xiàn)有向圖鄰接表的構(gòu)建

    C++實(shí)現(xiàn)有向圖鄰接表的構(gòu)建

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)有向圖鄰接表的構(gòu)建,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語言中隱藏結(jié)構(gòu)體的細(xì)節(jié)

    C語言中隱藏結(jié)構(gòu)體的細(xì)節(jié)

    以筆者粗淺的認(rèn)識(shí),有兩種最常用的方法,可以實(shí)現(xiàn)庫內(nèi)結(jié)構(gòu)體定義的隱藏:接口函數(shù)形參使用結(jié)構(gòu)體指針,接口函數(shù)形參使用句柄。
    2017-05-05

最新評(píng)論

香港| 仁寿县| 鄂托克旗| 内江市| 宁南县| 石景山区| 白朗县| 西昌市| 铜山县| 商都县| 开平市| 大同市| 贺州市| 永泰县| 河间市| 高唐县| 科尔| 绍兴市| 沙坪坝区| 海口市| 景泰县| 龙州县| 安阳县| 布尔津县| 乐陵市| 渭源县| 乌拉特前旗| 普陀区| 临沂市| 满城县| 青川县| 阿拉善盟| 彩票| 玉屏| 阳原县| 嘉峪关市| 卢龙县| 青川县| 开化县| 托克托县| 武穴市|