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

C語(yǔ)言中字符型數(shù)組的實(shí)現(xiàn)示例

 更新時(shí)間:2025年12月18日 10:20:23   作者:VekiSon  
本文主要介紹了C語(yǔ)言中字符型數(shù)組的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、字符型數(shù)組的基本概念

用途:用來(lái)存儲(chǔ)字符串

1.C語(yǔ)言中定義字符數(shù)組

char str[常量];

  • 在開辟內(nèi)存空間的時(shí)候,需要有足夠大的空間。
  • "hello world",共11個(gè)有效字符,需要注意的是,最后是'\0'.

2.字符型數(shù)組的訪問(wèn)

char str[15] = "hello world";

int i = 0;
str[0] == h; //char
str[i] == h; //char
str[i+1] == e; //char
str[10] == d;
str[11] = '\0';


printf("%c", a[0]);
a[0] =a;
  • 下標(biāo)的范圍 :0 ~ N-1
  • 下標(biāo)可以是常量、變量、表達(dá)式。
  • 不能整體操作,只能單個(gè)字符操作。 系統(tǒng)中提供庫(kù)函數(shù),可以整體操作。

3.字符串的初始化

char str[50] = "hello";
char str2[10] = {'b','u','s',};
char str3[6] = {"hello"};
char str4[10] = {0};
char str5[] = {'h','e','l','l','o','\0'};// 如果不指定數(shù)組大小,使用單個(gè)字符初始化,一定要寫'\0'
char str6[] = "hello6";
char str7[] = {"hellor7"};

注意:

  • 字符串常量初始化的字符數(shù)組,其長(zhǎng)度至少為 “字符串長(zhǎng)度 + 1”(預(yù)留 '/0' 的位置)。
  • 如果不指定數(shù)組大小,使用單個(gè)字符初始化,一定要寫 '\0'

4.字符串的輸出

//單個(gè)字符
putchar(str[0]); // 方式1
printf("%c\n",str[0]); // 方式2

//顯示整個(gè)字符串
int i = 0 ; // 方式1
for(i = 0; str[i] != '\0'; i++)
{
    printf("%c\n",str[i]);
}
printf("str is %s\n",str); // 方式2
puts(str); // 方式3

5.字符串的輸入

char str[50] = {0}; // 方式1
printf("input name:");
scanf("%s", str); // 接收的字符串中不能有空格

char str2[50] = {0}; // 方式2
gets(str2); // 接收的字符串中可以有空格

二、字符串相關(guān)函數(shù)

1.獲得字符串有效長(zhǎng)度(strlen)

功能:計(jì)算字符串中有效字符的個(gè)數(shù)(不包含 '\0')。

原型:size_t strlen(const char *str)

int len = strlen(str); // 會(huì)返回str的有效長(zhǎng)度
  • strlen 的替代寫法:
int i = 0 ;
while(1)
{
    if('\0' == str[i])
    {
        break;
    }
    i++;
    len++;
}

2.字符串的復(fù)制(strcpy)

功能:將源字符串 (src) 復(fù)制到目標(biāo)字符數(shù)組 (dest),包括 '\0',目標(biāo)字符串原來(lái)的內(nèi)容會(huì)被覆蓋。

原型:char *strcpy(char *dest, const char *src);

char dest[10] = "aaa";
char src[10] = "bbb";
strcpy(dest, src); // dest變?yōu)?bbb"

str2 = str1; // 這個(gè)是錯(cuò)誤的,不是復(fù)制內(nèi)容。

注意:目標(biāo)數(shù)組 dest 必須有足夠空間,否則會(huì)導(dǎo)致緩沖區(qū)溢出(危險(xiǎn)?。?。

  • strcpy 的替代寫法:
int i=0;
while(1)
{
    if('\0' == str[i])
    {
        break;
    }
    str2[i] = str[i];
    i++;
}

3.字符串的拼接(strcat)

功能:將源字符串拼接到目標(biāo)字符串的末尾(覆蓋 dest 原有的 '\0',并在新末尾加 '\0')。

原型:char *strcat(char *dest, const char *src);

char dest[20] = "hello";
char src[] = " world";
strcat(dest, src);  // dest變?yōu)?hello world"

注意:dest 必須有足夠空間容納拼接后的結(jié)果。

  • strcat 的替代寫法:
int i = 0, j = 0;

// 設(shè)置i的值為源字符串的末尾位置
while(1)
{
    if('\0' == str[i])
    {
        break;
    }
    i++;
}

// 拼接字符串
while(1)
{
    str[i] = str2[j];
    if('\0' == str2[j])
    {
        break;
    }
    i++;
    j++;
}

4.字符串的比較(strcmp)

功能:按 ASCII 值逐個(gè)比較兩個(gè)字符串的字符,返回比較結(jié)果。

原型:int strcmp(const char *s1, const char *s2);

返回值:

  • 0:內(nèi)容相同。
  • > 0 或 < 0:內(nèi)容不相同。如果不相同,實(shí)際是不同的字符進(jìn)行相減操作。
char str1[] = "apple";
char str2[] = "banana";
printf("%d\n", strcmp(str1, str2));  // 返回值<0('a' ASCII值 < 'b')
printf("%d\n", strcmp(str1, "apple"));  // 返回值=0(相等)
  • strcmp 的替代寫法:
int i = 0;
int ret = 0;

while(1)
{
    if(str1[i] == str2[i] && str1[i] != 0)
    {
        i++;
    }
    else
    {
        ret = str1[i] - str2[i];
        break;
    }
}

printf("ret %d\n", ret);

到此這篇關(guān)于C語(yǔ)言中字符型數(shù)組的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)C語(yǔ)言 字符型數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

新源县| 鄯善县| 鄂州市| 孟州市| 和田县| 辽中县| 乳山市| 凉山| 肇东市| 马尔康县| 交城县| 吕梁市| 石楼县| 永清县| 赞皇县| 二手房| 尖扎县| 垣曲县| 嵩明县| 当雄县| 宜阳县| 万宁市| 崇义县| 通榆县| 青河县| 新兴县| 古田县| 红桥区| 黄冈市| 鄱阳县| 美姑县| 泗水县| 牟定县| 鄂伦春自治旗| 湘西| 南阳市| 鄢陵县| 沐川县| 和顺县| 开封县| 陆良县|