關於在KEIL中對字元陣列賦值字串操作的奇怪問題

時間 2022-02-07 01:40:04

1樓:

你所謂的「執行時賦字串變數」,這個字串**來的?

1. 固定的字串。那麼應當是常量陣列,直接以字元拷貝即可;

2. 變長的字串,例如來自串列埠。指標拷貝自串列埠緩衝區。

2樓:

字串只能在定義的時候初使化。如果在程式執行時要對其值只能單獨操作,即只能單獨賦值,或是迴圈賦值!

例如:int c[10] = "abc";

或int c[10];

....//其他執行**

c[0] = 'a';

c[1] = 'b';

c[2] = 'c';

c[3] = '\0' ;

3樓:匿名使用者

c[10]="abc"; 改成 c="abc";

4樓:匿名使用者

嗯,這個問題我也遇見過,在其他的程式設計環境是可以這樣賦值的,但在keil中是非法的,我解決的方法如下:

假如說你要程式執行時對a字元賦值:你可以先將可能出現的或者要用的字串,在開始定義的時候,賦值給b,c,d....陣列,程式執行的時候再來判斷,是將b陣列,還是c陣列,或者其他陣列賦給a.

例子如下:

#include

void main()

c語言中將字串賦值給字元陣列的問題

5樓:

#include

int main()

6樓:豬頭或火寶寶

你好!!!

舉例如下:

char s[20];s="helo";這樣是錯誤的,原因就是不能用賦值語句將一個字串常量直接給一個字元陣列賦值。

char s[20];

char ss="hello";

s=ss;這也是錯誤的,原因是不能用賦值語句將一個字元陣列直接給一個字元陣列賦值

即字串的複製(c語言中,但是在c++的string 類,上面的賦值是正確的)必須用strcpy()函式實現。

而char a[ ]=」toyou「;為上面是正確呢???那是因為我們在宣告陣列變數的時候就是,為其開闢空間,併為其初始化,這樣才是符合c語言語法的。而上面的都是不符合語法的。

keil關於字串陣列賦值問題

7樓:匿名使用者

a[0]='9';這句只能寫在函式內,函式外只能定義時初賦值a[0]='9';

void main()

改為void main()

keil c51中將字串賦值給一個陣列,除了在定義中直接賦值之外,是否可以先定義後賦值?

8樓:學習娛樂陣地

可以。但不要想著直接用tets=;-----------這樣是不行的。

你可以用scanf("%s",test),或者用gets(test)來進行字串的讀入。

C 對字元陣列排序,c 中對於幾組字串的升序或降序排序怎麼做???

風若遠去何人留 與其它排序類似,字元陣列排序也是根據一定演算法,如冒泡法,將各個項值進行比較,並通過賦值交換位置即可。對於字元陣列,賦值和比較均與一般物件或變數不同。1 字元陣列比較 需要呼叫strcmp函式。int strcmp char s1,char s2 按照ascii碼比較,當s1和s2相...

在VB中,字串為零長度和字串為Null有什麼區別

這兩個是完全不同的,實際使用也完全不同。字串為 它還是字串,只不過是一種特殊狀態 零長度,類似於c中的 0 字串為null,其實這個字串已經不是字串了,更加確切的說,這個字串的變數的值已經無效了。對三樓 murderor無語,不懂可以,但不要誤導人。null的實際使用與零字串差別太大了 任何與nul...

C 中cout《字元陣列名為什麼能輸出字串

最大的寶寶 如果你想輸出ps的地址,可以使用 ps,而ps的用法,在c 實現中是輸出它指向的內容。流 使用很抽象的類别範本來實現,雖然是公開的,但至少先把stl或atl的基礎弄懂才可能讀懂它 我認為cout是類ostream的物件,而ostream的定義是typedef basic ostreamo...