現在この課題を処理中です。目的は、ファイルを読み込み、これらのchar値がファイルのStringに存在するかどうかを調べることです。私はファイルからのStringを、引数として入れた別のStringと比較する必要があります。しかし、各char値がファイルのStringにある限り、それは "一致"します。文字列にすべてのchar値が含まれていることを確認してください。
例(入出力):
が行わ行わ
./a.out file1が行わ間抜け
である
は犬ではない
例(FILE1):
bonehead
doggie
比較できる文字列はわかりますが、文字列は問題ではなく、ファイルは1行につき1語に続きます。 char値が他のStringに存在するかどうかを調べるプログラムをまとめましたが、それは問題の一部に過ぎません。これについてどうやったらいいの?
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv){
FILE *f = fopen(argv[1], "r");
char *line = NULL;
size_t len = 0;
ssize_t read;
char *word = argv[2];
if(argc != 3){
printf("./a.out <file> <word>\n");
exit(EXIT_SUCCESS);
}
if(f == NULL){
printf("file empty\n");
exit(EXIT_SUCCESS);
}
// confused what this loop does too
while((read = getline(&line, &len, f)) != -1){
char *c = line;
while(*c){
if(strchr(word, *c))
printf("can't spell \"%s\" without \"%s\"!\n", line, word);
else
printf("no \"%s\" in \"%s\".\n", word, line);
c++;
}
}
fclose(f);
exit(EXIT_SUCCESS);
}
私はいくつかの意見と応答がないようですが、私の質問はひどく言われていますか?私は必要に応じて書き換えたり説明したりすることができます。 – Joe
割り当ては文字列ではなく文字をチェックすることです。だから、あなたが書いたように(教師は別の指示を与えるかもしれない)、要件に応じて文字の順序は重要ではありません。 – jdweng
ちょっと混乱します。ここでは、ファイルの単語の文字が入力されているかどうかをテストします。 –