1

我正在从 UDP 客户端向 UDP 服务器发送一个字符串。服务器的工作是检查此字符串是否存在于文本文件 archive.txt 中的任何位置。

我遇到的问题是 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 是 line 的子字符串的 line 和 msg。

4

0 回答 0