-2
私はこれをしばらくの間、作業してきましたが、{0,0,0,0,0}、{2751685,2951685など}または{57,58,59,60、など}文字列をint配列
void getGuess(int guess[], int length) {
char thisGuess[length];
int i=0;
printf("Enter your guess.\n");
scanf("%s", &thisGuess);
for(i=0; i<length; i++) {
printf("the guess = %d\n",(int)thisGuess[i]) ;
guess[i] = (int)(thisGuess)-48;
printf("%d ", guess[i]);
}
}
私は、文字列、12345を入力して、私のコードのように
guess[0] = 1
guess[1] = 2
guess[2] = 3
etc
提案それを取得したいですか?
数字「0」から整数値「0」への変換に「48」が使用されていると思われます。それが正しい場合は:**マジックナンバーを使用しないでください!あなたはコードを難読化します。 _character整数constant_'''0''を使用してください。 – Olaf
長さのパラメータではなく、あなたのforループでscanfで得られた文字列の実際の長さを使用してください... – Unimportant
'(int)(thisGuess) - 48'は 'thisGuess [i] - 48'(または、 0''48ではなく)。また、ちょうど起こった入力( 'length'ではなく)の最後でループを止めて、' length'以上の値を入力するとバッファオーバーフローを防ぐ何らかの方法が必要です。 –