怎樣把char陣列賦值給另char陣列

時間 2021-08-30 10:38:45

1樓:黑夜不是我

簡單的可以使用memcpy,舉個例子

#include

#include

int main(int argc, char *argv)

2樓:匿名使用者

#include

using namspace std;

//char2最好有8個位元組,因為末尾要有'\0'

strncpy( char2, char1, 8 );

ps.strcpy()不會自動開闢空間;

3樓:匿名使用者

直接用strcpy(char2,char1);就可以了,函式自動為char2開闢空間。

4樓:

既然是陣列用迴圈就行了。

for(i=0;i<7;i++)

5樓:

#include

#include

#include

void main(int argc, char * argv)

6樓:

#include

strcpy(char2,char1);

7樓:敖亦旋

void ccoindispensordlg::ondis3() //hopper 3 dispense coins

;unsigned char xu3, lie3, hao3;

if((m_edit6>=3)&&(m_edit6<=10))}memset((void *)buf, 0, 32);

break;}}

}}//dispense coin 3

unsigned char tx8[9] = ;

if((m_edit6>=3)&&(m_edit6<=10))tx8[13] = 0xff - tx8[13] + 1;

myserial.senddata((const char *)&(tx8[0]), 9);

dword t8 = ::gettickcount();

for (;;)}}

} 下面是執行結果,把buf陣列裡面的第9,10,11元素64,98,22,拿出來放入第二個陣列tx8的4、5、6元素位置,執行後缺不是64,98,22,確是cc,cc,cc,為什麼?

c語言結構體中的一個char陣列怎麼賦值?

8樓:

常用兩種措施:

在宣告結構體變數時初始化,如——

//#include "stdafx.h"//if the vc++6.0, with this line.

#include "stdio.h"

struct stu;

int main(void);//這樣初始化printf("%d %s\n",s.x,s.name);

return 0;

}向陣列裡直接拷貝字串,如——

//#include "stdafx.h"//if the vc++6.0, with this line.

#include "stdio.h"

#include "string.h"

struct stu;

int main(void)

9樓:凌亂心扉

(1)用字元常量逐個初始化陣列。例如:

char a[8]=;

把8個字元依次分別賦給c[0]~c[7]這8個元素。

如果在定義字元陣列時不進行初始化,則陣列中各元素的值是不可預料的。如果花括號中提供的初值個數(即字元個數)大於陣列長度,則出現語法錯誤。

如果初值個數小於陣列長度,則只將這些字元賦給陣列中前面那些元素,其餘的元素自動定為空字元(即'\0')。

如果提供的初值個數與預定的陣列長度相同,在定義時可以省略陣列長度,系統會自動根據初值個數確定陣列長度。

例如:char c=;

這時c陣列的長度自動定為9。也可以定義和初始化一個二維字元陣列,例如:

char diamond[5][5]=,,,

,};用它代表一個菱形的平面圖形。

(2)字串常量初始化陣列。例如:

char c=;

可寫為:char c=;

或去掉{}寫為:char c="c program";

注意:此時陣列c的長度不是9,而是10。因為字串常量的最後由系統加上一個'\0'。上面的初始化與下面的初始化等價。

char c=;

其定義的一般形式是:char陣列名[資料長度]

例如:char c[10];

c[0]='i';c[1]='';c[2]='l';c[3]='o';c[4]='v';c[5]='e';c[6]='';c[7]='y';c[8]='o';c[9]='u';

以上定義了c為字元陣列,包含10個元素。

由於字元型資料是以整數形式(ascii**)存放的,因此也可以用整型陣列來存放字元資料,例如:

int c[10];

但這時每個陣列元素佔2個位元組的記憶體單元,浪費儲存空間。

字元陣列也可以是二維或多維陣列,例如:

char c[5][10];

即為二維字元陣列。

初始化字元陣列的初始化與數值型陣列初始化沒有本質區別。但它除了可以逐個給陣列元素賦予字元外,也可以直接用字串對其初始化。

輸入輸出

字元陣列的輸入

(1)用getchar()或scanf()的'%c'格式符對陣列進行字元賦值。例如,對於陣列a[10]:用getchar()賦值:

for(i=0;i<10;i++)

a=getchar();

用scanf()賦值:

for(i=0;i<10;i++)

scanf("%c",&a);

(2)用scanf()的'%s'格式對陣列賦值。還是對於陣列a[10]:

scanf("%s",a);

或scanf("%s「,&a[0]);

輸入」c program「並回車時,a陣列會自動包含一個以」\0「結尾的字串」c program「。

字元陣列的輸出

(1)用putchar()或printf()的『%c』格式符對陣列進行字元賦值。例如,對於陣列a[10]:用putchar()賦值:

for(i=0;i<10;i++)

a=putchar();

用printf()賦值:

for(i=0;i<10;i++)

printf("%c",a);

輸出結果為:

c program

(2)用printf()的'%s'格式對陣列賦值。還是對於陣列a[10];

printf("%s",a);

輸出結果為:

c program

10樓:禮浦業雲韶

好吧,比如:

struct

emu=

那麼對char

ch賦值可以

for(j=0;j<=49;j++)

emu.ch[j]=j;

或者一個字元一個字元的賦值,比如emu.ch[0]='a';

對字串的賦值不能直接等於,要用函式strcpy,

11樓:匿名使用者

st.name="123"; 非法,常量字串不能直接賦值給字元陣列,因為st.name 地址是確定的,不能再改了。

char name[10]="123";可以的,定義時,進行初始化字元陣列。

12樓:匿名使用者

可以用string.h,標頭檔案裡面的strcpy()函式,拷貝

c語言中如何把一個陣列賦給另一個陣列啊?

13樓:府士恩齋詩

strcpy(a,b);是把b字串複製到a中.只能用於char型.

陣列傳遞,可以用迴圈語句,一個元素一個元素賦值,也可用指標賦值.

還有方法是記憶體塊複製:

void

*memcpy(void

*s1,

const

void

*s2,

size_tn);

14樓:受樹花寧女

第一個問題,用for迴圈吧第一個陣列的值

給第二個,

第二個問題,可以,完全可以,第一個矩陣剛好是第二個的轉制矩陣,當然可以了。

在VBA中如何用陣列給另陣列賦值

通過陣列迴圈的方式進行陣列賦值。示例 dim names 定義一個初始化陣列dim dest 3 定義一個要賦值的陣列 賦值names array 小明 小紅 效力 張明 王武 通過ubound 函式計算上界,lbound計算陣列下界for i lbound dest to ubound dest ...

c語言陣列賦值問題,c語言中如何給陣列定義並賦初值?

靈凍冰晶霜月 我不清楚你想問什麼,不過第二種寫法是對的。char chars 11 是定義了一個初始值為空總數為11的字元陣列。char s c language 定義一個總數為11的字元陣列,但是有初值。注意是11個不是10個,用這種方定義的字元陣列末尾會加一個 0。陣列的賦值通常是使用花括號來表...

C語言中怎麼把一維陣列賦給另外一維陣列

勵光解芷容 不可以,之所以不可以是因為陣列名是個常量,它的值是陣列首元素地址,即不能將其它值付給這個常量。可以採用迴圈的方法逐個複製,或者採用另一個同型別的指標 相對於陣列名,指標是變數 指向要複製的陣列,之後就可以採用這個指標訪問之前的那個陣列 武冰業雁菡 void main int b 10 i...