c語言給char數組賦值
① c語言getchar()對字元數組賦值的過程是怎麼呢
getchar()按順序從緩沖區讀走一個字元,相當於清除緩沖區,每讀取一次緩沖區少一個字元,
例如:鍵盤輸入數據 1 2 3 4 5 回車
輸入緩沖區中數據:1 2 3 4 5 回車
點擊回車後,getchar()開始從緩沖區中讀取字元,一次讀取一個
第一次 getchar() = '1', 緩沖區數據還有:2 3 4 5
第二次 getchar() = '2', 緩沖區數據還有:3 4 5
第二次 getchar() = '3', 緩沖區數據還有:4 5
...
直到緩沖區中的數據被讀取完
int i=0; //初始化
while( (a[i++]=getchar()) != '#')
的過程相當於
do
{
a[i] = getchar();
i++;
}
while(a[i-1] != '#') //這個地方懂吧
希望對你有幫助!!
② 請問C語言 char類型的指針要怎麼賦值
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *source = malloc(20*sizeof(char);
printf("Please input source \n");
scanf("%s",source);//f方法三
printf("%s\n",source);
char *temp = "my input source"
sprintf(source,"%s",temp);//方法一
printf("%s\n",source);
strcpy(source,temp);//方法二
printf("%s\n",source);
return 0 ;
}
指針是無法存放字元串的,只有指針指向的那塊空間才能存放字元串,所以我第一句話給它開辟了20個空間,這樣就可以給指針指向的那塊空間賦值了,謝謝
另外給你一個建議 char *a = NULL,*b =NULL,*c =NULL;這樣的寫法是不規范的,很容易出錯。標准形式應該是char *a= NULL;
char *b = NULL;
char *c = NULL;
③ C語言怎樣給字元數組賦值
1、單字元賦值,可通過數組下標方式或指針方式,引用數組元素,進行賦值。
例子:
char a[10];
char ch='a';
for( i=0;i<10;i++ )
a[i]=ch+i ; //可通過數組下標引用數組元素,完成賦值
char *p;
for( p=a; p<a+10; p++ )
*p=ch++; //通過指針對數組相應元素賦
2、字元串賦值,可使用string.h頭文件中的字元串操作函數進行賦值。
例子:
char a[10];
strcpy( a, "abcdefgh");
sprintf(a, "%s", "abcdefgh");
(3)c語言給char數組賦值擴展閱讀:
C語言給字元數組賦值的優點:
1、簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2、運算符豐富
C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
④ C語言中給char類型的數組賦值,為什麼只能用strcpy而不能直接用=來賦值然後好像在初始化的
是的 初始化的時候可以 char[4] s="abc";
後面賦值只能 strcpy(s, "abc");
⑤ c語言結構體中的一個char數組怎麼賦值
st.name="123"; 非法,常量字元串不能直接賦值給字元數組,因為st.name 地址是確定的,不能再改了。 char name[10]="123";可以的,定義時,進行初始化字元數組。
⑥ c語言char數組賦值
sprintf(s,"他是一個%dB",i);
⑦ C語言求助:給char某個位置賦值
1,定義 char 為"aaaaaa" ——這已經錯了
可以說定義 char [] a="aaaaaa"; 是字元數組
2、要改變字元數組某元素的值,直接給該元素賦值
a[1]='b';
~
~
~
~
~
~
⑧ C語言一個給char類型數組賦值問題。
輸出的時候用
inti=0;
for(i=0;i<10;i++){
printf("a[%d]=%c ",i,a[i]);
}
防止緩沖區溢出可以用這樣的:
fgets(a,sizeof(a),stdin);
a[strlen(a)-1]='