c語(yǔ)言字符串存入數(shù)組 怎么給字符串?dāng)?shù)組賦值?
怎么給字符串?dāng)?shù)組賦值?字符數(shù)組有兩種賦值,單字符賦值和字符串賦值。對(duì)于單字符賦值,數(shù)組元素可由數(shù)組下標(biāo)或指針引用,例如:char a[10]char ch=“a”For(I=0I<10i)a[I]
怎么給字符串?dāng)?shù)組賦值?
字符數(shù)組有兩種賦值,單字符賦值和字符串賦值。
對(duì)于單字符賦值,數(shù)組元素可由數(shù)組下標(biāo)或指針引用,例如:
char a[10]char ch=“a”For(I=0I<10i)a[I]=ch I//數(shù)組元素可由數(shù)組下標(biāo)引用,以完成char*pfor(P=a P<10p)*P=ch//為相應(yīng)元素賦值通過(guò)指針對(duì)數(shù)組進(jìn)行
字符串賦值??梢栽谧址惺褂米址僮骱瘮?shù)。H頭文件賦值,如:char a[10]strcpy(a,“abcdefgh”)sprintf(a,%s”,“abcdefgh”)
注意:定義數(shù)組時(shí),可以同時(shí)初始化,但定義完成后,不能以初始化的形式賦值,例如:
char a[10]=“abcdefgh”//this可以是a=“abcdefgh”//這是錯(cuò)誤的!A是數(shù)組的名稱,它是一個(gè)靜態(tài)數(shù)據(jù):數(shù)組的第一個(gè)地址值可以看作是一個(gè)常量,不能再更改。
!字符串變量原來(lái)是字符串變量的變量,整數(shù)變量原來(lái)是整數(shù)變量的變種,這是ASCII碼,你說(shuō)把每個(gè)字符分配給一個(gè)數(shù)組,你說(shuō)把每個(gè)字符分配給一個(gè)字符串,你說(shuō)的是把每個(gè)字符串分配給一個(gè)數(shù)組,例如這樣的:如:這樣:如:這樣:如:如:本公司有以下的各種不同的字符串,本公司有不同的字符串,本公司有不同的不同的情況,如本公司,如本公司,本公司有不同的各各各各各各各各各各各各各各各各各不同,如如如如如本公司,如本公司,本公司各各各各各各各各各各各各各各各各各各各各各各各各各各各義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義義詘詘詘詘詘詘詘詘詘詘詘詘詘詘詘詘詘詘詘詘詘詘詘詘。
然后將字符串?dāng)?shù)組中的數(shù)據(jù)分配給字符串變量,這似乎是不可能的。
可以對(duì)定義的字符串?dāng)?shù)組重新賦值嗎?
Chars[20]s=“helo”此錯(cuò)誤的原因是無(wú)法使用賦值語(yǔ)句將字符串常量直接賦給字符數(shù)組。Chars[20]charss[]=“Hello”s=SS錯(cuò)誤,原因是:字符數(shù)組不能用賦值語(yǔ)句直接賦值給字符數(shù)組,即字符串副本(在C語(yǔ)言中,但在C的string類中,上述賦值是正確的)必須用strcpy()函數(shù)實(shí)現(xiàn)。正確的理由是,在聲明數(shù)組變量時(shí),要為它們打開(kāi)空間并進(jìn)行初始化,這符合C語(yǔ)言的語(yǔ)法。擴(kuò)展信息:理解C語(yǔ)言1中的字符串賦值。指針賦值。上述示例可以正常執(zhí)行并且容易理解。但是下面的方法有點(diǎn)難理解。通過(guò)程序的操作,我們可以知道:char*P=“Hello”這個(gè)字符串賦值方法完全沒(méi)有問(wèn)題。要理解這種賦值方法,我們必須首先理解雙引號(hào)在這個(gè)語(yǔ)句中的作用。雙引號(hào)主要做三項(xiàng)工作,分別是:(1)應(yīng)用空格(在常量區(qū)域),存儲(chǔ)字符串。(2) 在字符串末尾添加“0”。(3) 回信地址。這里返回的地址被分配給char*類型的指針變量p。2、 字符串直接通過(guò)字符數(shù)組賦值。程序如下:3。一些問(wèn)題需要注意。將字符串賦給數(shù)組名(即數(shù)組第一個(gè)元素的第一個(gè)地址)是不正確的。