1

UDP クライアントから UDP サーバーに文字列を送信しています。サーバーの仕事は、この文字列がテキスト ファイル archive.txt 内のどこかに存在するかどうかを確認することです。

私が得ている問題は、2 番目の文字列が最初の文字列にある場合でも、strstr が常に null を返すことです。

char msg[1000];
FILE *archive;
archive = fopen("archive.txt", "r");
char line[53];
char *testing;

. . .

        len = sizeof(cliaddr);
        n= recvfrom(sockfd,msg,1000,0,(struct sockaddr *)&cliaddr,&len);
        sendto(sockfd,msg,n,0,(struct sockaddr *)&cliaddr,sizeof(cliaddr));
        msg[n]=0;
        while(fgets(line, 53, archive) !=NULL)
        {
            testing = strstr(line, msg);

            if(testing!=NULL)
               {printf("%s\n","Success");}
            else
            {    printf("%s\n", "fail");
                 printf("%s\n", line);  
                 printf("%s\n", msg);               
            }

        }

プログラムが出力に失敗する場合があります。行と、msg が行の部分文字列である msg です。

4

0 に答える 0