1、直接逐個(gè)初始化字符數(shù)組:
成都創(chuàng)新互聯(lián)公司從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元海陵做網(wǎng)站,已為上家服務(wù),為海陵各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
字符數(shù)組的初始化,最容易理解的方式就是逐個(gè)字符賦給數(shù)組中各元素。
char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};
注意:如果花括號中提供的字符個(gè)數(shù)大于數(shù)組長度,則按語法錯誤處理;若小于數(shù)組長度,則只將這些字符數(shù)組中前面那些元素,其余的元素自動定為空字符(即'\0'
)。
2、用字符串常量來初始化字符數(shù)組:
在c語言中,將字符串作為字符數(shù)組來處理。因此可以使用字符串來初始化字符數(shù)組。
char str[]={"I am happy"};
也可以省略花括號。
char str[]="I am happy";
但是,上述這種字符數(shù)組的整體賦值只能在字符數(shù)組初始化時(shí)使用,不能用于字符數(shù)組的賦值,字符數(shù)組的賦值只能對其元素一一賦值,下面的賦值方法是錯誤的。
char str[];
str="I am happy";//錯誤,字符數(shù)組的賦值只能按元素一一賦值
chardata[20];
data="hello";
先解釋這個(gè)為什么是錯的,因?yàn)閐ata="hello";實(shí)際上就是data[0]="hello";是data字符數(shù)組的首個(gè)字符,很顯然不能放字符串。
至于兩者的區(qū)別,后者可以可以更方便通過指針來訪問修改刪除元素。
char*data;
data="hello";這句中的data是指針變量,指向"hello"這個(gè)字符串在內(nèi)存中的首地址。
字符串定義一般有兩種方式
1. 字符數(shù)組方式
char s[100];
2.字符指針方式
char * s;
s=(char *)malloc(100);
3.初始化,如果是數(shù)組可以在定義的時(shí)候初始化
char s[100]={0};
也可以 memset( s, 0, sizeof(s) );
如果是指針 memst( s, 0, 100 );
有時(shí)候也可以很簡單的只把第一個(gè)字符初始化,如s[0]='\0',或者 *s='\0';
應(yīng)該選a
char
str[]
= {'g',……,'l'};
沒有給str設(shè)定有多少個(gè)字符,比如str[8],也沒有在字符中{'g',……,'l'}設(shè)置結(jié)束標(biāo)記"\0"
所以是錯的。
d項(xiàng)因?yàn)槭?good!"字符串,所以在賦值給str[]的時(shí)候會自動根據(jù)字符串長度設(shè)置數(shù)組長度,同時(shí)在結(jié)尾加結(jié)束標(biāo)記"\0"
可以使用memset函數(shù)將字符串?dāng)?shù)組中所有元素全部設(shè)置為\0即可。
函數(shù)原型:void
*memset(void
*s,
int
ch, size_t n);
函數(shù)說明:將s中前n個(gè)字節(jié)
(typedef
unsigned
int
size_t
)用
ch
替換并返回
s
。
示例:
#include stdio.h
#include string.h
int main()
{
char buf[256] = "hello world"; //buf字符數(shù)組初始化
printf("%d\n", strlen(buf));
memset(buf, 0x00, sizeof (char) * 256); //全部設(shè)置為0x00即\0字符
printf("%d\n", strlen(buf));
return 0;
}
分享文章:c語言字符串函數(shù)初始化 c語言中字符串的初始化
網(wǎng)站網(wǎng)址:http://muchs.cn/article32/hphdpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)