中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

浙江做網(wǎng)站的公司百度公司招聘信息

浙江做網(wǎng)站的公司,百度公司招聘信息,如東縣文化館網(wǎng)站建設(shè),塑膠科技東莞網(wǎng)站建設(shè)數(shù)組的概念 什么是數(shù)組 數(shù)組是相同類型,有序數(shù)據(jù)的集合。 數(shù)組的特征 數(shù)組中的數(shù)據(jù)被稱為數(shù)組的元素,是同構(gòu)的 數(shù)組中的元素存放在內(nèi)存空間里 (char player_name[6]:申請(qǐng)?jiān)趦?nèi)存中開(kāi)辟6塊連續(xù)的基于char類型的變量空間) 衍生概念&#x…

數(shù)組的概念

什么是數(shù)組

數(shù)組是相同類型,有序數(shù)據(jù)的集合。

數(shù)組的特征

  • 數(shù)組中的數(shù)據(jù)被稱為數(shù)組的元素,是同構(gòu)的

  • 數(shù)組中的元素存放在內(nèi)存空間里 (char player_name[6]:申請(qǐng)?jiān)趦?nèi)存中開(kāi)辟6塊連續(xù)的基于char類型的變量空間)

衍生概念:下標(biāo)(索引)

  • 下標(biāo)或索引代表了數(shù)組中元素距離第一個(gè)元素的偏移位置。

  • 數(shù)組中元素的地址值,下標(biāo)越大,地址值越大。(每一塊內(nèi)存空間都有一個(gè)獨(dú)有的內(nèi)存地址)。

  • 數(shù)組的下標(biāo)是從0開(kāi)始的。

一維數(shù)組

數(shù)組的定義

  • 類型說(shuō)明符 數(shù)組名[數(shù)組容量]

說(shuō)明:

  • 數(shù)組的類型說(shuō)明符由數(shù)組中的元素來(lái)決定,也就是元素是什么類型,數(shù)組就是什么類型

  • 數(shù)組名也是標(biāo)識(shí)符, 我們所說(shuō)的數(shù)組(名),大家可以理解為數(shù)據(jù)類型是數(shù)組的變量(名)。

  • 數(shù)組容量也可以叫做常量表達(dá)式,舉例: int ages[10]、int lcd[1024*768]

類型:代表了數(shù)組中元素的類型

容量:數(shù)組中能存儲(chǔ)多少個(gè)元素,數(shù)組容量可以是一個(gè)常量、常量表達(dá)式,還可以是符號(hào)常量,但必須是整型。

深入理解:定義一個(gè)數(shù)組,相當(dāng)于申請(qǐng)了一個(gè)可以容納所指定元素?cái)?shù)量的內(nèi)存單元。所申請(qǐng)的內(nèi)存單元是連續(xù)的。

定義一個(gè)數(shù)組,相當(dāng)于定義了多個(gè)匿名變量,這些變量可以通過(guò) 數(shù)組名[下標(biāo)] 來(lái)標(biāo)識(shí)。

舉例:

// 定義一個(gè)數(shù)組
int arr[10];
// 問(wèn)題:上面數(shù)組中,最小下標(biāo)0,最大下標(biāo)9

經(jīng)過(guò)上面的案例,分析得到

 數(shù)組的最大下標(biāo) = 數(shù)組元素個(gè)數(shù)(數(shù)組容量) - 1

數(shù)組元素的訪問(wèn)

原則:數(shù)組中的元素不能一次性訪問(wèn)所有元素,只能一個(gè)一個(gè)的訪問(wèn)。

訪問(wèn)方式:

數(shù)組名[下標(biāo)];

舉例:

// 定義一個(gè)容納10個(gè)元素的int數(shù)組
int arr[10];
// 給數(shù)組的第一個(gè)元素進(jìn)行賦值
arr[0] = 89;
// 訪問(wèn)數(shù)組的第一個(gè)元素
int a = arr[0];
// 問(wèn)題:以下訪問(wèn)是否正確
int b = arr[10]; // error,下標(biāo)越界異常

注意:數(shù)組元素的訪問(wèn)一定不能越界。

案例:

/*
需求:一維數(shù)組案例-引用數(shù)組元素。利用循環(huán)給數(shù)組元素a[0]~a[9]賦值0~9,并且逆序輸出
*/
#include <stdio.h>
int main()
{// 創(chuàng)建一個(gè)數(shù)組int arr[10];// 使用for循環(huán)給數(shù)組賦值for(int i = 0;i < 10;i++){arr[i] = i;}// 逆序輸出// 我們通過(guò)循環(huán)將數(shù)組中的元素一個(gè)個(gè)取出來(lái),稱之為遍歷for(int j = 9;j >= 0;j--){printf("%d ",arr[j]);}printf("\n"); // 純粹換行return 0;
}

數(shù)組的初始化

定義數(shù)組的同時(shí),用指定數(shù)據(jù)來(lái)給對(duì)應(yīng)元素賦值。

簡(jiǎn)化數(shù)組定義后,需要對(duì)元素一一賦值操作。

語(yǔ)法規(guī)則:

  • 類型 數(shù)組名[容量] = {常量1,常量2,常量3...};

注意事項(xiàng):

  • 數(shù)組可以部分初始化:也就是可以給數(shù)組中前幾個(gè)元素初始化,未被初始化的元素系統(tǒng)將自動(dòng)初始化,如0;如果定義數(shù)組時(shí)未指定數(shù)據(jù)容量,則系統(tǒng)會(huì)根據(jù)初始化元素的個(gè)數(shù)來(lái)決定數(shù)組容量。

// 1. 如果定義數(shù)組時(shí)只給數(shù)組前幾個(gè)初始化,后續(xù)剩余元素會(huì)自動(dòng)完成初始化,比如賦值0
int arr[10] = {1,2,3,4,5} // 推薦寫法,等價(jià)于以下寫法
int arr[10] = {1,2,3,4,5,0,0,0,0,0}
// 2. 如果定義數(shù)組時(shí)未指定數(shù)據(jù)容量,根據(jù)初始化元素個(gè)數(shù)來(lái)決定容量
int arr[] = {1,2,3,4,5} // 推薦寫法,等價(jià)于以下寫法
int arr[5] = {1,2,3,4,5}

衍生概念:

  • 柔性數(shù)組:柔性數(shù)組的概念是在C99標(biāo)準(zhǔn),針對(duì)結(jié)構(gòu)體的最后一個(gè)成員可以是一個(gè)未指定大小的數(shù)組;

廣義簡(jiǎn)單理解:數(shù)組容量待定或者待確定的數(shù)組,舉例: int arr[] = {1,2,3,4,5}

面試題:

  • 在不知道數(shù)組類型的情況下,如何確定數(shù)組元素的個(gè)數(shù)

int length = sizeof(arr) / sizeof(arr[0])

說(shuō)明:

1. arr就是我們計(jì)算的數(shù)組本身,`sizeof(arr)`用來(lái)計(jì)算該數(shù)組中總的字節(jié)大小。
2. `sizeof(arr[0])`用來(lái)計(jì)算數(shù)組中一個(gè)元素所占的字節(jié)大小,因?yàn)閿?shù)組中的元素類型相同,所以計(jì)算哪一個(gè)都行。
3. `sizeof(arr)/sizeof(arr[0])`就是用數(shù)組中總的字節(jié)數(shù)除以每一個(gè)元素所占的字節(jié)數(shù),從而得到元素的個(gè)數(shù)。

一維數(shù)組案例

案例1:

/*
需求:一維數(shù)組案例-非波拉契數(shù)列
*/
#include <stdio.h>
int main()
{int i;// 循環(huán)變量int f[20] = {1,1}; // 定義一個(gè)數(shù)組,用來(lái)存儲(chǔ)數(shù)列,默認(rèn)存儲(chǔ)第1位和第2位int length = sizeof(f)/sizeof(f[0]);// 計(jì)算數(shù)組的元素個(gè)數(shù)// 生出數(shù)列存入數(shù)組for(i = 2;i < length;i++){// 給數(shù)組元素賦值,從數(shù)組的第3個(gè)元素開(kāi)始f[i] = f[i - 2] + f[i - 1];}// 遍歷數(shù)組// 通過(guò)循環(huán)將數(shù)組中的每一個(gè)元素取出來(lái),稱之為遍歷for(i = 0;i < length;i++){// 遍歷的時(shí)候,要求一行顯示5個(gè)數(shù)if(i % 5 == 0){printf("\n");}printf("%6d",f[i]);}printf("\n");return 0;
} ? ?

數(shù)組的典型應(yīng)用:數(shù)據(jù)排序

冒泡排序

  • 向后冒泡 思想:

  1. 一次只排好一個(gè)數(shù),針對(duì)n個(gè)數(shù),最差情況需要 n-1次就可以排好

  2. 每次排序?qū)⑾噜彅?shù)據(jù)兩兩比較,將較大或較小的數(shù)據(jù)向后交換,等所有數(shù)據(jù)都比較完成,將較大/較小的數(shù)就會(huì)出現(xiàn)在最后,這也是該數(shù)應(yīng)該有的位置。

  3. 在余下的數(shù)中,再次應(yīng)用第2步的操作,直到只剩下一個(gè)數(shù)。

  • 向前冒泡

    思想:

    1. 一次只排好一個(gè)數(shù),針對(duì)n個(gè)數(shù),最差情況需要n-1次就可以排好

    2. 每次排序假定第一個(gè)元素是最大/最小的,用第一個(gè)元素的后面的元素一一與第一個(gè)元素比較,遇到較大/較小的和第一個(gè)元素交換,訪問(wèn)完數(shù)組的最后一個(gè)元素,就排好了一個(gè)數(shù);

    3. 在余下的數(shù)中,再次應(yīng)用第2步的操作,直到只剩下一個(gè)數(shù)。

一維數(shù)組案例

案例2:

/*
需求:一維數(shù)組案例-冒泡排序
*/
#include <stdio.h>
int main()
{// 創(chuàng)建一個(gè)數(shù)組,用來(lái)存儲(chǔ)排序的數(shù)列int arr[11];int i,j,temp;// i:比較的輪數(shù),j:每一輪比較的次數(shù),temp:臨時(shí)變量,用來(lái)比較時(shí)交換數(shù)據(jù)printf("請(qǐng)輸入11個(gè)測(cè)試整數(shù):\n");// 計(jì)算數(shù)組的大小int length = sizeof(arr) / sizeof(int); // 這里 sizeof(int) 等價(jià)于 sizeof(arr[0]);// 通過(guò)循環(huán)錄入數(shù)據(jù)for(i = 0;i < length; i++){scanf("%d",&arr[i]);}printf("\n");// 對(duì)數(shù)組arr使用冒泡進(jìn)行排序(注意:我們使用標(biāo)準(zhǔn)冒泡,大家也可以自行補(bǔ)充優(yōu)化版的冒泡,如雞尾酒排序法等等)// 外層循環(huán):控制比較的輪數(shù),因?yàn)橛?1個(gè)數(shù),所以我們需要比較 length -1 輪,也就是比較10輪for(i = 0;i < length -1;i++){// 內(nèi)層循環(huán):每一輪比較的次數(shù),每一輪比較的次數(shù)為 length - 1 - i, 3-1-0=2,3-1-1=1,3-1-2=0for(j = 0;j < length-1-i;j++){// 相鄰的兩個(gè)數(shù)進(jìn)行比較,滿足條件交換位置if(arr[j] > arr[j+1]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}printf("冒泡排序后遍歷數(shù)組:\n");for(i = 0; i < length; i++){printf("%4d",arr[i]);}printf("\n");return 0;
}

案例3:

/*
需求:一維數(shù)組案例-從鍵盤輸入年、月、日,計(jì)算并輸出該日是該年的第幾天。
*/
#include <stdio.h>
int main()
{// 定義變量:年,月,日,統(tǒng)計(jì)總天數(shù),循環(huán)變量,用來(lái)遍歷當(dāng)前月前面的月份int year,month,day,sum,k;// 定義一個(gè)數(shù)組,用來(lái)存放1~12月每月的天數(shù)int t[] = {31,0,31,30,31,30,31,31,30,31,30,31};// 柔性數(shù)組printf("請(qǐng)輸入年份、月份、天:\n");scanf("%d,%d,%d",&year,&month,&day);// 因?yàn)槎卤容^特殊,存在平年和潤(rùn)年這樣的因素,所以需要進(jìn)行平年和潤(rùn)年的判斷if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){t[1] = 29; // 潤(rùn)年 2月 29天}else{t[1] = 28; // 平年 2月 28天}sum = day; // 默認(rèn)記錄最后一個(gè)月的天數(shù)// 這是該年的第幾天for(k = 0; k < month -1;k++){sum += t[k]; // 疊加前幾個(gè)月的天數(shù)}printf("%d月%d日是%d年的第%d天。\n",month,day,year,sum);return 0;
} ? 

二維數(shù)組

定義

  • 二維數(shù)組本質(zhì)上是一個(gè)行列式的組合,也就是說(shuō)二維數(shù)組是有行和列兩部分構(gòu)成。二維數(shù)組數(shù)據(jù)是通過(guò)行列進(jìn)行解讀。

  • 二維數(shù)組可被視為一個(gè)特殊的一維數(shù)組,相當(dāng)于二維數(shù)組又是一個(gè)一維數(shù)組,只不過(guò)它的元素是一維數(shù)組。

語(yǔ)法

類型 數(shù)組名[行數(shù)][列數(shù)];

舉例:

int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; // 等價(jià)于以下寫法
int arr[][3] = {{1,2,3},{4,5,6},{7,8,9}}; // 柔性數(shù)組
int arr[3][] = {{1,2},{4,5,6},{7}} // 等價(jià)于 {{1,2,0},{4,5,6},{7,0,0}}

應(yīng)用場(chǎng)合

主要應(yīng)用于數(shù)據(jù)有行列要求的情況。

特殊寫法

下標(biāo)可以是整型表達(dá)式,如: a[2-1] [2*2-1]

下標(biāo)可以是已經(jīng)有值的變量或數(shù)組元素, 如 a[2*x-1] [b[3] [1]]

數(shù)組元素可以出現(xiàn)在表達(dá)式中, 如: b[1] [2]=a[2] [3]/2

初始化

  • 分行給二維數(shù)組賦初值

int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 
  • 可將所有數(shù)據(jù)寫在一個(gè)花括號(hào)內(nèi),按照排列順序?qū)υ刭x值。

int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; // 等價(jià)于上面的寫法 
  • 可對(duì)部分元素賦初值,其余未賦值部分自動(dòng)填充 0 | \0 | 0.0...

int a[3][4] = {{1},{5,6},{9}}; // 等價(jià)于 int a[3][4] = {{1,0,0,0},{5,6,0,0},{9,0,0,0}} 
  • 若對(duì)全部元素賦初值,自定義數(shù)組時(shí)可以省略第1為數(shù)組的長(zhǎng)度,第2維數(shù)組的長(zhǎng)度必須指明。

int a[][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; 
  • 在分行賦初值是,也可以省略第1維的長(zhǎng)度。

int a[][4] = {{1,2,3},{0},{0,10}}; // 等價(jià)于 int a[][4] = {{1,2,3,0},{0,0,0,0},{0,10,0,0}} 

案例

案例1:

/**
* 案例:二維數(shù)組的遍歷
*/
#include <stdio.h>
int main()
{int arr[][3] = {{1},{2,4},{5,6,7}};// 經(jīng)過(guò)論證:二維數(shù)組我們必須指明第2維的數(shù)組的長(zhǎng)度// 獲取行元素的大小int length = sizeof(arr) / sizeof(arr[0]); // 如果是二維數(shù)組,第1維的長(zhǎng)度,應(yīng)該是如左側(cè)這樣獲取printf("length:%d\n",length);// 遍歷二維數(shù)組,需要使用雙層for循環(huán),外層遍歷行,內(nèi)層遍歷每一行的列for(int row = 0;row < length;row++){// 獲取列元素的總大小int len = sizeof(arr[row]) / sizeof(int);for(int col = 0; col < len; col++){// 獲取列元素printf("%3d",arr[row][col]);// 意思是獲取數(shù)組arr 第row行第col列}printf("\n");}return 0;
}
// 數(shù)據(jù)類型,分支結(jié)構(gòu),循環(huán)結(jié)構(gòu),數(shù)組

案例2:

/**
* 需求:二維數(shù)組案例-矩陣的轉(zhuǎn)置(就是將一個(gè)2行3列的數(shù)組轉(zhuǎn)換為3行2列的數(shù)組)
*/
#include <stdio.h>
int main()
{// 準(zhǔn)備2個(gè)數(shù)組,存放轉(zhuǎn)前和轉(zhuǎn)后的數(shù)據(jù)int arr_before[2][3] = {1,2,3,4,5,6};int arr_after[3][2] = {0};// 初始化,每一列上都是0// 遍歷arr_beforefor(int i = 0;i < sizeof(arr_before)/sizeof(arr_before[0]);i++){for(int j = 0;j < sizeof(arr_before[i])/sizeof(int);j++){// 轉(zhuǎn)置arr_after[j][i] = arr_before[i][j];}}// 遍歷arr_afterfor(int i = 0;i < sizeof(arr_after)/sizeof(arr_after[0]);i++){for(int j = 0;j < sizeof(arr_after[i])/sizeof(int);j++){// 輸出printf("%4d",arr_after[i][j]);}printf("\n");}return 0;
}

案例3

/**
* 需求:二維數(shù)組案例-準(zhǔn)備一個(gè)int類型的二維數(shù)組,求該數(shù)組中大的最大值,以及對(duì)應(yīng)的行號(hào),列號(hào)
*/
#include <stdio.h>
int main()
{// 準(zhǔn)備一個(gè)二維數(shù)組int arr[3][4] = {{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};// 創(chuàng)建變量,用保存最大值、行號(hào)、列號(hào)int max = arr[0][0],row=0,col=0;// 遍歷集合for(int i = 0;i < sizeof(arr) / sizeof(arr[0]);i++){for(int j = 0;j < sizeof(arr[i]) / sizeof(arr[i][0]);j++){// 判斷最大值if(arr[i][j] > max){max = arr[i][j];row = i;col = j;}}}printf("max=%d,row=%d,col=%d\n",max,row,col);return 0;
} ? ? ? ? ?

字符數(shù)組

概念

  • 元素類型為char字符型的數(shù)組,字符數(shù)組往往是用來(lái)存儲(chǔ)字符串?dāng)?shù)據(jù)的。需要注意的一點(diǎn)是,我們C語(yǔ)言中的字符是字節(jié)字符。

  • 字節(jié)字符:也就是一個(gè)字符占1個(gè)字節(jié)

測(cè)試題:

char a = 'A' // 正確
char b = '1' // 正確
char c = 65 // 正確 這是ASCII碼編號(hào),對(duì)應(yīng)的值是 'A'
char d = "A" // 錯(cuò)誤,這是字符串的寫法,也是char數(shù)組的寫法,char d[1] = "A"
char e = '馬' // 錯(cuò)誤,中文一個(gè)字符超過(guò)1一個(gè)字節(jié)

語(yǔ)法

char 數(shù)組名[容量];
char 數(shù)組名[行容量][列容量];

字符數(shù)組的語(yǔ)法就是之前所學(xué)一維數(shù)組和二維數(shù)組的語(yǔ)法,只不過(guò)數(shù)據(jù)類型是char而已。

注意: 如果我們的char數(shù)組初始化的時(shí)候,沒(méi)有完全賦完值的時(shí)候,空出來(lái)的地方使用 \0 進(jìn)行填充。

字符案例

案例1:

/**
* 需求:字符數(shù)組案例-輸出一個(gè)字符串(I LOVE YOU!)
*/
#include <stdio.h>
int main()
{// 準(zhǔn)備一個(gè)測(cè)試字符串 I LOVE YOU!char arr[11] = {'I',' ','L','O','V','E',' ','Y','O','U','!'};// 通過(guò)一個(gè)for循環(huán)進(jìn)行遍歷輸出for(int i = 0;i < sizeof(arr)/sizeof(char);i++){printf("%c",arr[i]);}printf("\n");return 0;
}

案例2:

/**
* 需求:字符數(shù)組案例-輸出一個(gè)用字符組成的菱形圖案
*/
#include <stdio.h>
int main()
{// 準(zhǔn)備數(shù)據(jù)char arr[5][5] = {{' ',' ','*',' ',' '},{' ','*',' ','*',' '},{'*',' ',' ',' ','*'},{'','*',' ','*',' '},{' ',' ','*',' ',' '}};// 遍歷數(shù)組for(int i = 0;i < sizeof(arr)/sizeof(arr[0]);i++){for(int j = 0;j < sizeof(arr[i])/sizeof(char);j++){// 打印菱形printf("%c",arr[i][j]);}// 內(nèi)層循環(huán)每結(jié)束一輪,就是一行printf("\n");}printf("\n");return 0;
} ? ?

字符串和字符串結(jié)束標(biāo)志

說(shuō)明

字符數(shù)組的多樣表示

我們的char數(shù)組可以以數(shù)組的方式一個(gè)個(gè)輸出每個(gè)字符;我們的char數(shù)組也可以以字符串的方式整體

進(jìn)行輸出所有字符。具體如下面案例:

/*
需求:字符數(shù)組->字符串
*/
#include <stdio.h>
int main()
{// 字符串第1種表示:char s1[] = {'h','e','l','l','o',' ','w','o','r','l','d'};// 字符串第2種表示:char s2[] = {"hello world"};// 字符串第3種表示:char s3[] = "hello world";// 測(cè)試,使用字符串方式打印,這樣就不用一一遍歷printf("%s\n",s1);printf("%s\n",s2);printf("%s\n",s3);return 0;
}

注意

  • 字符串的長(zhǎng)度與字符數(shù)組的長(zhǎng)度不一定相同。

  • 利用字符串常量可以對(duì)字符數(shù)組進(jìn)行初始化,但不能用字符串常量為字符數(shù)組賦值。

// 正確寫法:利用字符串常量給字符數(shù)組初始化
char b[15] = "China";
// 錯(cuò)誤寫法:利用字符串常量給字符數(shù)組賦值
char b[15];
b[15] = "China";

字符串的基礎(chǔ)操作

字符串輸入

案例:

/*
* 需求:字符數(shù)組-字符串的輸入輸出
*/
#include <stdio.h>
int main()
{// 創(chuàng)建一個(gè)變量,用來(lái)存放人的名字char name[20];printf("請(qǐng)輸入您的姓名:\n");scanf("%s",name);// 如果是字符串,這里不是變量地址,是變量名printf("您的姓名是:%s\n",name);return 0;
}

注意:采用scanf進(jìn)行字符串輸入,要求字符串中不能存在空格,否則字符串遇到空格會(huì)結(jié)束。

  • fgets(數(shù)組名,數(shù)組容量,stdin);

說(shuō)明:采用fgets進(jìn)行字符串輸入,可獲取所有輸入的字符串,包含 \n ,在實(shí)際的字符串處理時(shí),我們

可能需要處理 \n

案例:

/*
* 需求:字符數(shù)組-字符串的輸入輸出
*/
#include <stdio.h>
int main()
{// 創(chuàng)建一個(gè)變量,用來(lái)存放人的名字char name[20];printf("請(qǐng)輸入您的姓名:\n");fgets(name,sizeof(name)/sizeof(char),stdin);// 輸入,返回地址puts(name);// 輸出return 0;
}

注意:

  1. 如果輸入的字符串不包含 空格 和 換行 ,可以使用scanf() | fgets();

  1. 如果輸入的字符串需要包含 空格 和 換行 ,只能使用fgets();

  2. 經(jīng)過(guò)對(duì)比,我們發(fā)現(xiàn),在字符串的輸入中,fgets()更好;

字符串輸出

puts(數(shù)組名)

案例:

/*
* 需求:字符數(shù)組-字符串的輸入輸出
*/
#include <stdio.h>
int main()
{// 創(chuàng)建一個(gè)變量,用來(lái)存放人的名字char name[20];printf("請(qǐng)輸入您的姓名:\n");scanf("%s",name);puts(name);// 輸出 問(wèn)題?字符串如何拼接printf("您的姓名是:%s\n",name);return 0;
}
  • printf("%s",數(shù)組名);

案例:

/*
* 需求:字符數(shù)組-字符串的輸入輸出
*/
#include <stdio.h>
int main()
{// 創(chuàng)建一個(gè)變量,用來(lái)存放人的名字char name[20];printf("請(qǐng)輸入您的姓名:\n");scanf("%s",name);printf("您的姓名是:%s\n",name);return 0;
}

字符串拼接

  • strcat(數(shù)組名,"需要拼接的字符串") 注意:需要引入 #include <string.h>

案例:

/*
* 需求:字符數(shù)組-字符串的輸入輸出
*/
#include <stdio.h>
#include <string.h>
int main()
{// 創(chuàng)建一個(gè)變量,用來(lái)存放人的名字char name[20];printf("請(qǐng)輸入您的姓名:\n");fgets(name,sizeof(name)/sizeof(char),stdin);// 輸入,返回地址puts(strcat(name," 跑著!"));// 拼接return 0;
}

字符串拷貝

  • strcpy(數(shù)組名,字符串)

    注意:需要引入 <string.h>庫(kù)

    說(shuō)明:這個(gè)方法適合給字符串賦值用。

char str[16] = "馬杰克" // 初始化,正確
char str[16]; str[16] = "馬杰克" // 賦值,錯(cuò)誤
char str[16]; strcpy(str,"馬杰克") // 賦值,正確,結(jié)果:馬杰克

案例:

/*
* 需求:字符數(shù)組-字符串的輸入輸出
*/
#include <stdio.h>
#include <string.h>
int main()
{// 創(chuàng)建一個(gè)變量,用來(lái)存放人的名字char name[20];printf("請(qǐng)輸入您的姓名:\n");scanf("%s",name);strcpy(name,"你好");printf("%s\n",name);// 輸出return 0;
}

字符串比較

  • strcmp(字符串1,字符串2);

    注意:

  1. 需要引入 <string.h>

  2. 返回的結(jié)果是boolean

案例:

/*
* 需求:字符數(shù)組-字符串的輸入輸出
*/
#include <stdio.h>
#include <string.h>
int main()
{// 創(chuàng)建一個(gè)變量,用來(lái)存放人的名字char username[20];printf("請(qǐng)輸入您的賬戶:\n");scanf("%s",username);if(strcmp(username,"admin")){printf("賬戶輸入錯(cuò)誤!\n");}else{printf("賬戶輸入正確!\n");}return 0;
}

獲取字符串長(zhǎng)度

  • strlen(字符串)

注意:

  1. 需要 <string.h>

  2. 返回字符串長(zhǎng)度

案例:

/*
* 需求:字符數(shù)組-字符串的輸入輸出
*/
#include <stdio.h>
#include <string.h>
int main()
{// 創(chuàng)建一個(gè)變量,用來(lái)存放人的名字char username[20];printf("請(qǐng)輸入您的賬戶:\n");scanf("%s",username);// 獲取字符串長(zhǎng)度unsigned long len = strlen(username);if(strcmp(username,"admin")){printf("賬戶輸入錯(cuò)誤!%lu\n",len);}else{printf("賬戶輸入正確!%lu\n",len);}return 0;
}
http://www.risenshineclean.com/news/60737.html

相關(guān)文章:

  • 哪個(gè)網(wǎng)站做調(diào)查問(wèn)卷賺錢長(zhǎng)春seo招聘
  • 騰訊云注冊(cè)域名后怎么做網(wǎng)站剛剛突發(fā)1驚天大事
  • wex5網(wǎng)站開(kāi)發(fā)北京seo助理
  • 南京電商網(wǎng)站建設(shè)公司百度搜索引擎的原理
  • 免費(fèi)茶葉網(wǎng)站建設(shè)點(diǎn)擊器
  • 360免費(fèi)做網(wǎng)站電腦零基礎(chǔ)培訓(xùn)班
  • icp備案 網(wǎng)站服務(wù)內(nèi)容蘇州網(wǎng)站制作開(kāi)發(fā)公司
  • 上海網(wǎng)站建設(shè)方案托管銀川seo
  • 太原網(wǎng)站設(shè)計(jì)公司軟件開(kāi)發(fā)定制
  • 鄭州網(wǎng)站建設(shè)國(guó)奧大廈網(wǎng)站seo資訊
  • 時(shí)時(shí)彩網(wǎng)站開(kāi)發(fā)違法嗎升華網(wǎng)絡(luò)推廣軟件
  • 濮陽(yáng)市建設(shè)分局網(wǎng)站百度賬號(hào)中心
  • qq郵箱登錄入口網(wǎng)頁(yè)版廣州seo網(wǎng)站推廣公司
  • 搭建cms網(wǎng)站網(wǎng)絡(luò)互聯(lián)網(wǎng)推廣
  • 廣東兩學(xué)一做網(wǎng)站西安網(wǎng)是科技發(fā)展有限公司
  • 江門模板建站哪家好網(wǎng)站推廣網(wǎng)絡(luò)營(yíng)銷方案
  • 網(wǎng)站里的橫幅怎么做項(xiàng)目網(wǎng)站
  • 鄭州網(wǎng)站建設(shè)哪家好打開(kāi)百度一下網(wǎng)頁(yè)版
  • 青之峰做網(wǎng)站廈門seo新站策劃
  • 臨清網(wǎng)站制作公司plc培訓(xùn)機(jī)構(gòu)哪家最好
  • 創(chuàng)建公司策劃書(shū)寧波優(yōu)化推廣選哪家
  • 網(wǎng)站建站方案說(shuō)明書(shū)網(wǎng)站制作的費(fèi)用
  • 哪家上市公司做視頻網(wǎng)站培訓(xùn)機(jī)構(gòu)專業(yè)
  • wordpress導(dǎo)航目錄手機(jī)優(yōu)化大師為什么扣錢
  • 天津制作企業(yè)網(wǎng)站提高工作效率的方法
  • 惠州哪家做網(wǎng)站比較好百度seo如何做
  • 做網(wǎng)站備案與不備案的區(qū)別seo長(zhǎng)尾關(guān)鍵詞優(yōu)化
  • 重慶所有做網(wǎng)站的公司包頭網(wǎng)站建設(shè)推廣
  • 商城網(wǎng)站建設(shè)-公司網(wǎng)絡(luò)營(yíng)銷推廣軟件
  • 網(wǎng)站建設(shè)管理的規(guī)章制度新產(chǎn)品怎樣推廣