文字配列を関数に渡して文字列をスキャンするのが難しいです。ここに私の要約コードです:配列を関数に渡して文字列をスキャンする
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define SIZE 20
void GetWord(char word[]);
main(void){
char word[SIZE]=" ";
GetWord(word);
}
void GetWord(char word[]){
printf("Please enter a word: ");
scanf("%s", word);
}
任意のサイズのエントリが作成された後、関数は単純にハングアップします。
私はscanfにはより良いオプションがあると理解していますが、それを使用する必要があります。ありがとうございました!
あなたは 'GetWord(char * word)'を意味しますか? – bansi
@Henryあなたのコードに問題は見られません。 –
'main()'の戻り値の型を定義する必要があります。実際に古くてコンパクトなコンパイラでは、それを許しています(C99には明示的な戻り値が必要です)。おそらく、読んだ単語を印刷するべきです。間違いなく、読み込まれた単語のサイズを 'scanf("%19s "、word)'で19バイト+ヌルに制限するべきです。 'scanf()'の戻り値をチェックする必要があります。あなたは「任意のサイズ」と言うとき、「1または2または3または...文字の後」を意味するのか、「サイズが十分に大きいとき(おそらく30または40または60文字)」ですか?初心者は普通ですが、とりわけコンピューティングでは口語でもどちらでも可能です。 –