任何人都可以告訴我爲什麼這段代碼崩潰?很簡單,如果字符串的長度大於16,再次詢問一個字符串。如果我在if語句中寫入control = 1,它會起作用,但如果沒有它,它應該也是一樣的,因爲那時控制的值是1,對嗎? thans(我學)簡單,如果陳述在c不起作用
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(void)
{
int control = 1;
char word[16] ;
printf("Enter a word: ");
while(control == 1)
{
scanf("%s", word);
int len = strlen(word);
printf("Lenght is: %d\n", len);
if (len >= 16)
{
printf("Word lenght to long, enter a new one: ");
}
else
{
control = 0;
}
}
printf("This is the word: %s\n", word);
}
還要記住終止NULL字符計爲已分配的16個字符之一。 – 2012-08-05 22:54:10
當然,希望SO只會計算出最好的答案,如10分,而不是每個upvote 10分。如果我寫一個需要多年經驗的無鎖問題的答案,我可能會得到一兩票,因爲還有誰知道?我在一個基本的C問題上寫了一個簡單的問候,嘿,八票。這是啤酒'甜點'投票。這實際上並不僅僅是對接受者的感覺良好的因素。 – 2012-08-05 23:33:11
另外考慮更深奧的問答比較少的觀衆,因此投票少。 – 2012-08-05 23:43:49