【C 语言】字符串操作 ( C 字符串 | 字符数组始化 )
生活随笔
收集整理的這篇文章主要介紹了
【C 语言】字符串操作 ( C 字符串 | 字符数组始化 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、C 字符串
- 二、字符數組始化
一、C 字符串
C 字符串特征 : C 語言中的字符串都是以 '\0'字符 結尾的 字符數組 ;
C 字符串本質 : C 中 沒有字符串類型 , 都是使用 字符數組 模擬字符串 ;
字符串內存分配 :
- 堆區存放字符串 : 先使用 malloc 申請內存 , 然后將字符串拷貝到內存中 ;
- 棧區存放字符串 : 在棧區聲明 char[] 數組 , 將字符串拷貝到數組中 ;
- 全局區存放字符串 : 直接聲明 "abc" 樣式的 字符串常量 , 則字符串存放在了 全局區的 常量區 ;
不是所有的 字符數組 都是 字符串 , 必須是以 '\0' 字符 結尾的 字符數組 , 才算字符串 ;
下面的這種情況 , 是字符數組 , 有 333 個數組元素 , 由于其不是以 '\0' 字符 結尾 , 因此該 字符數組 不是字符串 ;
// 2. 初始化字符數組 , 不指定長度// C 編譯器會自動計算 字符數組 元素個數// 注意 : 這不是字符串 , 字符串必須以 '\0' 結尾char str2[] = {'a', 'b', 'c'};二、字符數組始化
初始化字符數組 , 可以 指定長度 , 如下字符數組有 20 字節 , 只給前 3 個元素進行了初始化 , 第 3 ~ 19 元素 , 會自動賦值為 0 ;
char str[20] = {'a', 'b', 'c'};注意 : 如果初始化的 字符數組 超過數組長度 , 會報錯 ;
初始化字符數組 , 不指定長度 , C 編譯器會自動計算 字符數組 元素個數 ;
char str2[] = {'a', 'b', 'c'};注意 : 這不是字符串 , 字符串必須以 ‘\0’ 結尾
代碼示例 :
#include <stdio.h> #include <string.h> #include <stdlib.h>/** 函數入口*/ int main(int argc, char **args) {// 1. 初始化字符數組 , 指定長度// 字符數組有 20 字節 , 只給前 3 個元素進行了初始化// 第 3 ~ 19 元素 , 會自動賦值為 0char str[20] = {'a', 'b', 'c'};// 如果指定長度初始化字符數組 , 如果初始化數組中個數大于字符數組長度// 編譯會直接報錯//char str1[2] = {'a', 'b', 'c', '\0'}; // 錯誤示例// 2. 初始化字符數組 , 不指定長度// C 編譯器會自動計算 字符數組 元素個數// 注意 : 這不是字符串 , 字符串必須以 '\0' 結尾char str2[] = {'a', 'b', 'c'};// 打印上述 字符串printf("str = %s, str2 = %s\n", str, str2);system("pause");return 0; }執行結果 :
str = abc, str2 = abcabc總結
以上是生活随笔為你收集整理的【C 语言】字符串操作 ( C 字符串 | 字符数组始化 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C 语言】指针间接赋值 ( 间接赋值三
- 下一篇: 【C 语言】字符串操作 ( strlen