欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

"Hello world!"

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

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

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

那么字符串有什么用呢?

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

"abcdef"

我們可以把它放在字符串數(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;
}

運行的結(jié)果:

abcdef

abcdef

請?zhí)砑訄D片描述

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

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

你也可以不寫[ ]里面的數(shù)字,它會自己根據(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;
}

運行的結(jié)果:

abcdef

abcdef燙燙燙燙燙abcdef

請?zhí)砑訄D片描述

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

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

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

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

char arr1[]="abcdef";

這個形式一,字符串后面就默認帶了一個\0

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

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

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

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

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

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

#include<stdio.h>

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

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

運行的結(jié)果:

abcdef

abcdef

請?zhí)砑訄D片描述

結(jié)果運行正常了

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

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

#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;
}

運行結(jié)果:

3

3

請?zhí)砑訄D片描述

"abc"

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

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

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

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

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

我們來實驗一下

#include<stdio.h>

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

運行結(jié)果:

a

請?zhí)砑訄D片描述

#include<stdio.h>

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

運行結(jié)果:

a

請?zhí)砑訄D片描述

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

相關(guān)文章

  • C++異步數(shù)據(jù)交換實現(xiàn)方法介紹

    C++異步數(shù)據(jù)交換實現(xiàn)方法介紹

    這篇文章主要介紹了C++異步數(shù)據(jù)交換實現(xiàn)方法,異步數(shù)據(jù)交換,除了阻塞函數(shù) send() 和 recv() 之外,Boost.MPI 還支持與成員函數(shù) isend() 和 irecv() 的異步數(shù)據(jù)交換
    2022-11-11
  • C++ 自定義控件的移植問題

    C++ 自定義控件的移植問題

    這篇文章主要介紹了C++ 自定義控件的移植問題,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-06-06
  • C++實現(xiàn)萬年歷小功能

    C++實現(xiàn)萬年歷小功能

    這篇文章主要為大家詳細介紹了C++實現(xiàn)萬年歷小功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C語言掃雷游戲的實現(xiàn)方法

    C語言掃雷游戲的實現(xiàn)方法

    這篇文章主要為大家詳細介紹了C語言掃雷游戲的實現(xiàn)方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語言實現(xiàn)冒泡排序的思路以及過程

    C語言實現(xiàn)冒泡排序的思路以及過程

    冒泡排序是最簡單的排序方法,理解起來容易。雖然它的計算步驟比較多,不是最快的,但它是最基本的,初學(xué)者一定要掌握。本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值
    2021-09-09
  • Qt使用流處理XML文件的示例代碼

    Qt使用流處理XML文件的示例代碼

    XML(eXtensible?Markup?Language)是一種通用的文本格式,被廣泛運用于數(shù)據(jù)交換和數(shù)據(jù)存儲。本文主要來和大家聊聊如何使用?Qt?處理?XML?格式的文檔,需要的可以參考一下
    2023-02-02
  • C++哈希應(yīng)用的位圖和布隆過濾器

    C++哈希應(yīng)用的位圖和布隆過濾器

    這篇文章主要介紹了C++哈希應(yīng)用的位圖和布隆過濾器的相關(guān)資料,文章內(nèi)容多以列舉試題的方式講解,感興趣的朋友可以參考下面文章內(nèi)容
    2021-09-09
  • C++中stack、queue、vector的用法詳解

    C++中stack、queue、vector的用法詳解

    本文通過實例代碼給大家介紹了C++中stack、queue、vector的用法,需要的朋友參考下吧
    2017-08-08
  • C語言實現(xiàn)動態(tài)開辟存儲楊輝三角

    C語言實現(xiàn)動態(tài)開辟存儲楊輝三角

    這篇文章主要介紹了如何利用C語言實現(xiàn)動態(tài)開辟存儲楊輝三角,可以靈活的開辟空間,充分的利用空間。文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下
    2022-03-03
  • C語言嵌入informix基礎(chǔ)入門示例講解

    C語言嵌入informix基礎(chǔ)入門示例講解

    這篇文章主要介紹了C語言嵌入informix基礎(chǔ)方法,大家參考使用
    2013-11-11

最新評論