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

C語言定義字符串?dāng)?shù)組簡單代碼示例

 更新時間:2024年11月08日 08:53:07   作者:嵌入式學(xué)習(xí)和實踐  
在C語言中字符串?dāng)?shù)組是用來存儲多個字符串的,可以通過字符數(shù)組或指針數(shù)組的方式定義,這篇文章主要介紹了C語言定義字符串?dāng)?shù)組的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、字符串

在C語言中,字符串?dāng)?shù)組是一種存儲多個字符串的數(shù)組。每個字符串本身是一個字符數(shù)組,以空字符(\0)結(jié)尾。

二、定義字符串?dāng)?shù)組

2.1 字符數(shù)組組成的數(shù)組

這種方式可以存儲固定長度的字符串。示例:

//存儲5個字符串,每個字符串最多有20個字符(包括空字符)
#include <stdio.h>
#include <string.h>

int main(void) 
{
    char strArray[5][20];  // 定義一個5x20的字符數(shù)組

    // 初始化字符串?dāng)?shù)組
    strcpy(strArray[0], "Hello");
    strcpy(strArray[1], "World");
    strcpy(strArray[2], "C Language");
    strcpy(strArray[3], "Programming");
    strcpy(strArray[4], "is Fun");

    // 打印字符串?dāng)?shù)組
    for (int i = 0; i < 5; i++)
     {
        printf("%s\n", strArray[i]);
    }

    return 0;
}
#include <stdio.h>
#include <string.h>

int main(void) 
{
  char strArray[5][20] =
   {
    "Hello\0\0\0\0\0\0\0\0\0\0\0\0", // 注意:這里手動添加了空字符和填充字符,實際上不需要這么多,只是為了說明
    "World\0",
    "C Lang\0", // 注意:這里"C Language"被截斷為"C Lang",以適應(yīng)數(shù)組大小
    "Progra\0", // "Programming"被截斷為"Progra"
    "is Fun\0"
	};

    // 打印字符串?dāng)?shù)組
    for (int i = 0; i < 5; i++)
     {
        printf("%s\n", strArray[i]);
    }

    return 0;
}

strcpy函數(shù)用于將字符串復(fù)制到字符數(shù)組中。strArray是一個二維數(shù)組,其中strArray[i]是一個長度為20的字符數(shù)組(字符串)。

2.2 指針數(shù)組

這種方式可以存儲長度不固定的字符串。

//存儲5個字符串,但它們的長度是未知的
#include <stdio.h>
#include <string.h>

int main(void) 
{
    const char *strArray[5];  // 定義一個指針數(shù)組

    // 初始化字符串?dāng)?shù)組
    strArray[0] = "Hello";
    strArray[1] = "World";
    strArray[2] = "C Language";
    strArray[3] = "Programming";
    strArray[4] = "is Fun";

    // 打印字符串?dāng)?shù)組
    for (int i = 0; i < 5; i++)
     {
        printf("%s\n", strArray[i]);
    }

    return 0;
}
#include <stdio.h>
#include <string.h>

int main(void) 
{
    const char *strArray[5] = 
    {
    "Hello",
    "World",
    "C Language",
    "Programming",
    "is Fun"
	};

    // 打印字符串?dāng)?shù)組
    for (int i = 0; i < 5; i++)
     {
        printf("%s\n", strArray[i]);
    }

    return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void) 
{
     char *strArray[5];  // 定義一個指針數(shù)組

    // 初始化字符串?dāng)?shù)組
    strArray[0] = (  char *)malloc(strlen( "Hello"));
    strArray[1] = (  char *)malloc(strlen( "World")); 
    strArray[2] = (  char *)malloc(strlen( "C Language")); 
    strArray[3] = (  char *)malloc(strlen(  "Programming"));
    strArray[4] = (  char *)malloc(strlen( "is Fun")); 
    
    strcpy(strArray[0], "Hello");
    strcpy(strArray[1], "World");
    strcpy(strArray[2], "C Language");
    strcpy(strArray[3], "Programming");
    strcpy(strArray[4], "is Fun");

    // 打印字符串?dāng)?shù)組
    for (int i = 0; i < 5; i++)
     {
        printf("%s\n", strArray[i]);
    }
    //free
      for (int i = 0; i < 5; i++)
     {
        free(strArray[i]);
    }

    return 0;
}

strArray是一個指針數(shù)組,每個元素都指向一個字符串字面量。這種方法更靈活,因為字符串的長度可以不同,但所有字符串都必須是靜態(tài)量或動態(tài)分配的(例如使用malloc)。

注意事項

1、使用字符數(shù)組時,要確保不超出數(shù)組的邊界,否則會導(dǎo)致未定義行為。

2、使用指針數(shù)組時,要確保字符串的生命周期,避免懸掛指針(即指向已釋放內(nèi)存的指針)。

3、動態(tài)分配內(nèi)存時,記得在程序結(jié)束時釋放內(nèi)存(使用free函數(shù))。

總結(jié)

到此這篇關(guān)于C語言定義字符串?dāng)?shù)組的文章就介紹到這了,更多相關(guān)C語言定義字符串?dāng)?shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言用遞歸函數(shù)實現(xiàn)漢諾塔

    C語言用遞歸函數(shù)實現(xiàn)漢諾塔

    大家好,本篇文章主要講的是C語言用遞歸函數(shù)實現(xiàn)漢諾塔,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 詳解C++調(diào)用Python腳本中的函數(shù)的實例代碼

    詳解C++調(diào)用Python腳本中的函數(shù)的實例代碼

    這篇文章主要介紹了C++調(diào)用Python腳本中的函數(shù) ,需要的朋友可以參考下
    2018-11-11
  • C++ 二叉樹的鏡像實例詳解

    C++ 二叉樹的鏡像實例詳解

    這篇文章主要介紹了C++ 二叉樹的鏡像實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C++直接cout指針名的含義?

    C++直接cout指針名的含義?

    今天小編就為大家分享一篇關(guān)于C++直接cout指針名的含義?,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • C語言深入分析整形數(shù)據(jù)存儲

    C語言深入分析整形數(shù)據(jù)存儲

    C語言中,我們經(jīng)常使用數(shù)據(jù)類型,那么整形數(shù)據(jù)在內(nèi)存中如何存儲?存儲方式是什么?如果你對這些內(nèi)容不太了解的話,相信看完這篇博客后,你會對整形數(shù)據(jù)的存儲有一個新的認(rèn)識。話不多說,我們進(jìn)入正題
    2022-08-08
  • C/C++實現(xiàn)的MD5哈希校驗的示例代碼

    C/C++實現(xiàn)的MD5哈希校驗的示例代碼

    MD5算法是一種廣泛使用的 Hash 算法,常用于確保信息傳輸?shù)耐暾耘c一致性,本文主要介紹了C/C++實現(xiàn)的MD5哈希校驗的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 使用mmap實現(xiàn)多進(jìn)程對大文件拷貝

    使用mmap實現(xiàn)多進(jìn)程對大文件拷貝

    這篇文章主要介紹了使用mmap實現(xiàn)多進(jìn)程對大文件拷貝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • vscode和cmake編譯多個C++文件的實現(xiàn)方法

    vscode和cmake編譯多個C++文件的實現(xiàn)方法

    這篇文章主要介紹了vscode和cmake編譯多個C++文件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C/C++ 中g(shù)cc和g++的對比與區(qū)別

    C/C++ 中g(shù)cc和g++的對比與區(qū)別

    這篇文章主要介紹了C/C++ 中g(shù)cc和g++的對比與區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • C/C++新建注冊表項的代碼示例

    C/C++新建注冊表項的代碼示例

    今天小編就為大家分享一篇關(guān)于C/C++新建注冊表項的代碼示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12

最新評論