「words.dat」という名前のファイルから取得した、最大 17 文字の 20 文字の文字列の配列を作成しようとしています。その後、プログラムは最初の 17 文字のみを表示する文字列を切り捨て、残りの文字列を完全に無視する必要があります。でも
私の質問は次のとおりです。これを達成する方法がよくわかりません。このタスクを達成する方法について誰かが私に洞察を与えることができますか?
これが私の現在のコードです。
#include <stdio.h>
#include <stdlib.h>
#define WORDS 20
#define LENGTH 18
char function1(char[WORDS][LENGTH]);
int main( void )
{
char word_array [WORDS] [LENGTH];
function1(word_array);
return ( 0 ) ;
}
char function1(char word_array[WORDS][LENGTH])
{
FILE *wordsfile = fopen("words.dat", "r");
int i = 0;
if (wordsfile == NULL)
printf("\nwords.dat was not properly opened.\n");
else
{
for (i = 0; i < WORDS; i++)
{
fscanf(wordsfile, "%17s", word_array[i]);
printf ("%s \n", word_array[i]);
}
fclose(wordsfile);
}
return (word_array[WORDS][LENGTH]);
}
words.dat ファイル:
Ninja
DragonsFury
failninja
dragonsrage
leagueoflegendssurfgthyjnu
white
black
red
green
yellow
green
leagueoflegendssughjkuj
dragonsfury
Sword
sodas
tiger
snakes
Swords
Snakes
sage
出力例:
blahblah@fang:~>a.out
Ninja
DragonsFury
failninja
dragonsrage
leagueoflegendssu
rfgthyjnu
white
black
red
green
yellow
green
leagueoflegendssu
ghjkuj
dragonsfury
Sword
sodas
tiger
snakes
Swords
blahblah@fang:~>
このプログラムでその後達成されることは次のとおりです。
function1 が適切に動作した後、2 つ目の関数名「function2」を作成します。この関数は、配列全体を調べて、 case を含む「EXACTLY」に一致する一致する単語のペアを探します。その後、前に作成した words.dat ファイルから 20 文字の文字列と一致する単語を表示する 3 番目の関数を作成します。