void printInstructions();
char *getUserWord();
int main()
{
printInstructions();
char *baseWord = getUserWord();
printf("%s", baseWord);
return 0;
}
void printInstructions()
{
printf(" Instructions: \n"
"===================================================================\n"
"= This program is a hangman game. =\n"
"= The first user will enter the name to be guessed =\n"
"= After that, the second user will guess the letters of the word =\n"
"= the second user will loose if they have three strikes =\n"
"===================================================================\n");
return;
}
char *getUserWord()
{
static char str[20];
scanf("%s", str);
return str;
}
私の機能getUserWord
は、文字列を渡すことによってそのタスクを達成します。私がオンラインで読むものから、メイン関数内の変数に文字列を割り当てる唯一の方法は、char *baseWord = getUserWord();
でした。私はこれがなぜ機能しているのかわからないし、これが何がメモリ内で何をしているのかわからない。以下は私にとって意味をなさないものです。なぜこれはうまくいかないでしょうか?文字列を関数に渡します。 C
char baseWord[21];
baseWord = getUserWord();
ありがとうございます。実際に配列に文字列を渡す方法はありませんか?また、私が "char * getUserWord()"と言うと、それはアドレスを返す関数に伝えますか? –
あなたの最初の質問の文言は不明です。「文字列を配列に渡す」とはどういう意味ですか? 2番目の宣言では、 'char * getUserWord()'はポインタを返す関数を指定し、ポインタはアドレスを含む変数の型です。 – Peter
最初の質問では、実際には関数内に文字列を返すことができます。 –