Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   strcmp не работает хотя слово есть (https://forum.antichat.xyz/showthread.php?t=135882)

fire64 19.08.2009 01:50

strcmp не работает хотя слово есть
 
несмотря на то что в meseg содержится details strcmp его не находит


Код:

        nNumRead = recvfrom(name_sock, msg, MAX_MSG, 0, (sockaddr  *) &server_addr, &server_addr_size);


        if(nNumRead<0)
        {
                printf("cannot receive data \n");
                continue;
        }

        char meseg[100] = "";

        for(int i = 4; i < nNumRead; i++)
        {

                sprintf(meseg, "%s%c",meseg, msg[i] );
        }

        printf("test %s\n", meseg );

        if (!strcmp(msg, "details"))
        {
                printf ("A2S_INFO from %s\n", inet_ntoa(server_addr.sin_addr));
                continue;
        }


fker 19.08.2009 03:10

strcmp, всего лишь сравнивает 2 строки
http://imglink.ru/pictures/19-08-09/...27de04c254.jpg

тебе же нужно найти входит ли строка "details" в строку msg
думаю подойдет strstr
http://imglink.ru/pictures/19-08-09/...9024b09197.jpg

эдд: если не то нужно, извиняюсь

Jes 19.08.2009 03:11

не находит тоесть вылетает исключение? или не выполняется if ?

ps: попробуй strcmp(msg, TEXT("details")) или "details" как отдельную перменную

pps: кстати да ,
Цитата:

нужно найти входит ли строка "details" в строку msg
или сравнить их?

fker 19.08.2009 03:17

Если нужно просто сравнить, то возможно в msg передается какой-то лишний символ,
например '\n'

fire64 19.08.2009 10:49

fker, спасибо
использование strstr помогло


Время: 19:28