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