我正在尝试创建一个由 20 个字符串组成的数组,其中最多 17 个字符是从名为“words.dat”的文件中获取的。之后,程序应截断仅显示前 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 正常工作后,我将创建第二个函数名称“function2”,它将在整个数组中查找匹配“完全”匹配的单词对,包括 case 。之后,我将创建第三个函数,该函数显示我之前创建的 words.dat 文件中的 20 个字符串和匹配的单词。