1樓:墨汁諾
在字元陣列最後加上copy
bai '\0',作為字串結束標誌。
strcpy(studname[k],ntemp);
bai strcpy(studname[i],studname[k]);
strcpy(ntemp,studname[i]);
strcpy(ntemp,studname[k]);
strcpy(studname[k],studname[i]);
strcpy(studname[i],ntemp);
擴充套件資du料:zhi
如果在定義字元陣列時不進行初始dao化,則陣列中各元素的值是不可預料的。如果花括號中提供的初值個數(即字元個數)大於陣列長度,則出現語法錯誤。
如果初值個數小於陣列長度,則只將這些字元賦給陣列中前面那些元素,其餘的元素自動定為空字元(即'\0')。如果提供的初值個數與預定的陣列長度相同,在定義時可以省略陣列長度,系統會自動根據初值個數確定陣列長度。
2樓:未王艮
有燙燙燙燙燙燙燙
說明你的字元陣列其內容不明
一般需如下解決:擴大陣列範圍
或初始化陣列
3樓:匿名使用者
在字元陣列最後加上 '\0',作為字串結束標誌。
4樓:燒掉回憶
擴大陣列範圍
或初始化陣列
5樓:匿名使用者
出現「燙燙燙燙燙燙燙」一般是 沒有資料
c語言 字串的輸出,為什麼輸出那麼多『燙』呢?
6樓:天雲一號
出現「燙」的原因是由於字元陣列中的某些陣列元素沒賦值。
具體原因可以通過如專下例項來進行說明:
char a[10];
a[0] = 'a';
a[1] = 'b';
a[2] = 'c';
a[3] = 'd';
printf("%s", a); // 輸出屬結果就會出現很多「燙」,因為只對陣列a中前四個元素進行了賦值,後面的元素未進行賦值,所以計算機預設就輸出「燙」
如果作如下修改就會正常輸出
char a[10];
a[0] = 'a';
a[1] = 'b';
a[2] = 'c';
a[3] = 'd';
a[4] = '\0';
printf("%s", a); // 輸出abcd,因為加了結束字元'\0',而c語言中輸出字串是以結束字元'\0'作為結束輸出的,所以只輸出'\0'前面的所以字元,即abcd
7樓:匿名使用者
本程式的要求是先輸入一個字串,再依次列印出來。不過這個字串裡面運用了結構體
8樓:天天向上知識店鋪
#include
#define maxsize 100
struct string;
void init(struct string *l)void main()
9樓:匿名使用者
哥們,給改好了
#include
#define maxsize 100
struct string;
void init(struct string& l)void main()
10樓:張超級
能說得詳細一點嗎?該程式到底要求什麼?
為什麼會出現燙燙,為什麼C 程式執行中會出現 燙燙燙
因為你 scanf c ch num 只用了一次 也就是ch 0 有輸入,別的地方 都沒輸入。預設c語言編譯器給字元陣列開闢空間時的預設值,列印在終端上,就成這個了。另外ch num 是一個符號嗎?從來沒聽說過 而且,你也沒有在末尾加個 0 不知道你的c語言是不是剛學到字元陣列的部分。另外你的t有意...
c語言輸出字串陣列出現亂碼,C語言陣列輸出出現亂碼
c語言字串以 0 結尾,如果不以該符號結尾則輸出 s時會出錯,程式一直往存放字串的地址訪問。而你的程式中並沒有賦 0 給那兩個陣列,所以會出現亂碼。沒有出現亂碼的陣列是因為你初始化了,初始化時編譯器會給它加上 0 符號。include int main void c語言中字串以 0 結尾,你這樣迴圈...
如何在c語言中以陣列指標作為形參輸出陣列
senddata 2 0,0和 0 都等於0,因此 info 0 會在k 2時不成立 建議 1.另外傳一個參數列示命令的長度 2 另外尋找一個一定不會在正常的命令中出現的數字作為結束符而不是正常命令中間就可能出現的0 另外有一個優化建議是吧info null的判斷提前做而不是和for攪在一起,因為i...