c語言利用迴圈給字元陣列賦值

2025-07-15 03:20:18 字數 6020 閱讀 2022

1樓:

#include

int main()

cstr[i] = '\0'; // 字串結束符i=0;

while(cstr[i]!='\0') // 判斷字串是否結束printf(""); // 輸入回車換行return 0;

最簡單的**:

#include

int main()

2樓:網友

可以用puts();

下面看我寫的**。

#include

void main()

先是賦值給str然後輸出,用了puts()函式。

c語言怎樣給字元陣列賦值

3樓:蕉蕉

1、單字元賦值,可通過陣列下標方式或指標方式,引用陣列元素,進行賦值。

例子:char a[10];

char ch='a';

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

a[i]=ch+i ; //可通過陣列下標引用陣列元素,完成賦值char *p;

for( p=a; p*p=ch++;//通過指標對陣列相應元素賦2、字串賦值,可使用標頭檔案中的字串操作函式進行賦值。

例子:char a[10];

strcpy( a, "abcdefgh");

sprintf(a, "%s", "abcdefgh");

4樓:文庫精選

內容來自使用者:nian_xiaohui

1、字元陣列的定義與初始化字元陣列的初始化,最容易理解的方式就是逐個字元賦給陣列中各元素。charstr[10]={'i','','a','m','',『h』,'a','p','p','y';',『10即把1010個字元分別賦給str[0]str[9]10str[0]到str[9]10個元素如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理;若小於陣列長度,則只將這些字元陣列中前面那些元素,其餘的元素自動定為空字元(即'\0')。2、字元陣列與字串在c語言中,將字串作為字元陣列來處理。

c++(c++c++中不是)在實際應用中人們關心的是有效字串的長度而不是字元陣列的長度,例如,10040定義乙個字元陣列長度為100100,而實際有效字元只有4040個,為了測定字串的實c「」'\0際長度,c語言規定了乙個「字串結束標誌」,以字元'\0』代表。如果有乙個字'\0』10'\0'9符串,其中第1010個字元為'\0''\0',則此字串的有效字元為9個。也就是說,在遇到'\0''\0'時,表示字串結束,由它前面的字元組成字串。

第乙個字元'\0''\0'"cprogram」9系統對字串常量也自動加乙個'\0''\0'作為結束符。例如"cprogram」共有9個字10'\0'符,但在記憶體中佔1010個位元組,最後乙個位元組'\0''\0'是系統自動加上的。通過sizeof()(函式可驗證)'\0'有了結束標誌'\0''\0'後,字元陣列的長度就顯得不那麼重要了,在程式中往往依靠'\0'檢測'\0''\0'的位置來判定字串是否結束,而不是根據。

5樓:幻夢·人生

其實你的bai第二種賦值方式。

du是很危險的。容易產生zhi問題。

因為dao字串"china"實際上是六個內字元。

在容a的後面有乙個字串結尾識別符號'\0'

不過這個是個警告。

回到正題。當你使用。

char x[5]="china";

進行初始化的時候,程式會自動將'c' 'h'' 'i' 'n' 'a' '\0'依次賦值到x中。

x的實際儲存情況與char x[5]=;完全相同而scanf的傳入的引數是是陣列x的名稱。同樣也是x的首位址在scanf進行操作同樣是將china分解,依次賦值到x中當進行字串讀取的時候,程式會連續讀取字元,直到遇到'\0'為止由於你的x[5]沒有儲存'\0'

所以有可能會產生錯誤。

為什麼是有可能呢?

因為記憶體初始化的時候,x[4]的後面,很可能就是0相當於『\0』

所以你的程式會讀取到這個'\0',認為字串已經結束誤打誤撞不報錯。

6樓:網友

給字元陣列賦值抄。

分兩種情況,單字元賦值和字串賦值。

單字元賦值,可通過陣列下標方式或指標方式,引用陣列元素,進行賦值,如:

char a[10];

char ch='a';

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

a[i]=ch+i ; //可通過陣列下標引用陣列元素,完成賦值char *p;

for( p=a; p

字串賦值,可使用標頭檔案中的字串操作函式進行賦值,如:

char a[10];

strcpy( a, "abcdefgh");

sprintf(a, "%s", "abcdefgh");

注意:陣列在定義時,可以同時進行初始化,但定義完成後,就不能按初始化的形式對其賦值了,如:

char a[10]="abcdefgh"; //這樣可以a="abcdefgh"; //這樣是錯誤的!a是陣列名,是乙個靜態資料:陣列首位址值,可以看作是個常數,不能再被改變。

7樓:網友

上一節我們學習了c語言中的單目運算子,這一節我們學習c語言中賦值操作需要注意的點。

8樓:唯話子

雖然是計算機語言c語言的組合,要經過專門學習才能夠進行。

9樓:會忘記時間的鐘

char a[7]=;

可以用strcpy賦值,但是要保證a陣列的空間夠大,能夠放下需要賦值的字串。

strcpy(a,"ddgh");

10樓:

題有問題,bai 在家都看出來了。

du 致於記憶體表示方法zhi,char x=; 後面dao的不管,char x="china"; 後面的自動補版 0scanf("%s",x), s 方式也會補0, 如果權用 用 多個 %c , 不會最後補0

11樓:網友

對於字元陣列來的賦值。

下面兩種源賦值方式:

char x=;

char x="china"

是等同的。在字串的最後會隱藏乙個標誌著字串結束的字元'\0'

不然的話,程式**知道輸出字串應該在輸出哪乙個字元後停止?

而scanf("%s",x);語句接收到輸入的china會執行下面的過程:

x="china"

也就是x=內個,從上面可以見到,x要容納6個字元,所以應該是char x[6]="china";

12樓:網友

a="dsfsdf"這是字串賦值。字元都是單引號,只能乙個乙個賦值。

13樓:小呆小呆

你的第二種賦值方法是錯的:

char x[5]="china";

x[5]代表陣列有5個元素,但是"china"代表乙個字串,其中有6個字元,專每個屬字串預設都有乙個結尾標誌字元'\0'。所以"china"其實應該是'c','h','i','n','a','\0'這6個字元。陣列空間明顯不夠。

用scanf函式輸入字串的時候,也是自帶結尾標誌字元的。所以,如果要輸入成功,陣列應該定義為char x[6];多定義乙個元素用來存放結尾標誌字元'\0'。

14樓:網友

你的意抄思我大概懂了!你是要實。

bai現不再定義時賦值du

而是在定義後賦值吧!zhi

這個好像不dao

能在cz中實現的,但是用字元指標可以實現相似的功能!具體操作如下:

#inlcude

void main()

後面的輸出是先把首位址輸出,然後位址自動加1,再輸出,就輸出量字串不知道這個是否可以代替樓主的那種想法?

15樓:戀晴忽忽

int i;

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

scanf("%c",&a[i]);

還可以在前面加個標頭檔案。

#include

然後程式裡面。

gets(a);

16樓:根號

先糾copy正一下,字串「china」在記憶體中的存放是bai這樣的:'c''h''i''n''a''\0',多了乙個du'\0',表示zhi字串dao結尾。

你scanf輸入china,如果字串長度是5,也就是char x[5];就是x[0]='c',x[1]='h',x[2]='i',x[3]='n',x[4]='a';

如果char x[6或是更大的數];x[0]='c',x[1]='h',x[2]='i',x[3]='n',x[4]='a',x[5]='\0'

你的問題是 :系統會以;還是以"china";呢?

如果陣列長度=5,或"china" 的0~4位是一樣的;

如果陣列長度大於5,等價於"china",因為x[5]='\0';而不會初始化x[5]

懂了吧?注意剛接觸c語言,陣列下標從0開始數,字串以'\0'結束,這些都是最最基本的概念,祝好!

17樓:gz陪你看雪

不行,你的while迴圈是錯的,用for 迴圈。

char a[15][50];

int i;

for(i=0;i《你想輸的幾句話的數量;i++)gets(a[i]);

c語言中怎樣用for迴圈給字元陣列賦值

18樓:蒼老師的戀愛

假如,陣列名稱為buf(賦值語句中的值具體自己定):

for(int i=0;i

19樓:小樓微醉

scanf("%c",&a[i]);

如果%c還有其他符號,比如空格 那麼再輸入的時候也要輸入相應的符號,如果你想要在回螢幕直接輸入單詞答china! 那麼%c後面就不要有其他符號 如果想輸入乙個字母空一格 那就要在%c後面加乙個空格。

20樓:網友

首先bai我們定義乙個迴圈累加變數dui,zhii控制陣列的大小,for(i=0;idao組的大小,內當然在主函式中容n要明確,不能是動態陣列。可以通過輸入n的值,來控制陣列a的大小。

如果是字串,簡單的方法,可以通過指標直接輸入,例如,char *p="china!"

21樓:網友

方法bai一:

char a[100];

迴圈讀入每個。

du字元,包。

zhi括空格符,換行符dao,直到文。

件末尾版。這樣整個輸入權都被讀到乙個字串當中。

方法二:char a[100][100]; int i;

for(;gets(a[i++]//for迴圈讀入每行字串,這樣每行輸入由乙個字串儲存。

22樓:明羽凡

直接輸入,字元之間不用空格。

23樓:阿牛哥曾阿牛

c語言的陣列概念的學習,通過for迴圈輸出列印陣列。

c語言利用迴圈給字元陣列賦值怎麼做?

24樓:網友

int main()

int array[10];

for(int i=0;i<10;i++)//i 不能超過陣列的最大長度。

a[i]=i;

return 0;

c語言迴圈語句:

同乙個問題,往往既可以用 while語句解決,也可以用 do-while或者for語句來解決,但在實際應用中,應根據具體情況來選用不同的迴圈語句。選用的一般原則是:

1) 如果迴圈次數在執行迴圈體之前就已確定,一般用 for語句。如果迴圈次數是由迴圈體的執**況確定的,一般用 while語句或者do- while語句。

2) 當迴圈體至少執行一次時,用 do-while語句,反之,如果迴圈體可能一次也不執行,則選用while語句。

c++/c迴圈語句中,for語句使用頻率最高,while語句其次,do語句很少用。

三種迴圈語句for、while、do-while可以互相巢狀自由組合。但要注意的是,各迴圈必須完整,相互之間絕不允許交叉。

c語言 陣列與字串 程式設計題,C語言 陣列與字串 程式設計題

include int s int a 100 100 int x,int y min a 0 k p 0 for j 0 j int main printf 對角線之和為 d n sum return 0 include int main for i 0 i printf 轉置矩陣為 n for ...

c語言符指標和字元陣列的區別c語言字元指標和字元陣列的區別

首先第一點,非常重要的一點 指標和陣列是不同的兩個型別!我們從可以從c語言標準文件中得知 iso iec 9899 1999 programing language c 6.2.5 types 20 這說明了什麼是陣列型別 同樣在20 說明了什麼是指標型別。在瞭解了兩種型別的基礎上,我們瞭解陣列和指...

c語言字串陣列和字元陣列有什麼區別

這個是字元陣列。c語言字元陣列和字串的區別,字元陣列是一個儲存字元的陣列,而字串是一個用雙括號括起來的以 0 結束的字元序列,雖然字串是儲存在字元陣列中的,但是一定要注意字串的結束標誌是 0 總的來說是沒有區別的,字串就是以字元陣列形式儲存的。可以把一個字串看成是一個字元陣列,可以按陣列那樣操作。兩...