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...