-1

特にCは初めてで、いくつかの文字列をチェックしようとしています。

以下は私のコードで、なぜそれらが発生しているのか理解できない問題を示すためにコメントされています:

if (strstr(recBuff, "GET / HTTP/1.0\r\n\r\n") != NULL)
    //Send HTTP/1.0 200
    //This gets recognised fine
else if (strstr(recBuff, "GET / HTTP/1.0\r\r") != NULL)
    //Send HTTP/1.0 200
    //This gets recognised fine
else if (strstr(recBuff, "GET / HTTP/1.0\r\n") != NULL)
    //Do something else
    //This never gets picked up, and instead goes to the final else...
else
    //HTTP/1.0 404
    //Etc

私の質問は、なぜ strstr がそれを拾い上げて\r\n\r\n行動しているのかということだと思いますが、それだけ\r\nで最後の他のものまでずっと通過しますか? それに\r\n\r\nはelseがありますが、シングルのelseはシングル\r\nでは機能しません\r\n

TL;DR"GET / HTTP/1.0\r\n\r\n"は取り上げられますが、取り上げられ"GET / HTTP/1.0\r\n"ません。

4

1 に答える 1