Как сравнить символ / строку? - PullRequest
0 голосов
/ 06 сентября 2010

Как объявить и сравнить строки?

// test ="my test string";

char testDest[256];
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest, p);

Как сравнить тест с testDest?

Ответы [ 2 ]

1 голос
/ 06 сентября 2010

Используйте strcmp.Но я бы посоветовал вам сначала изучить книгу по программированию на Си.

0 голосов
/ 06 сентября 2010

Для сравнения без учета регистра попробуйте int strcmp ( const char * str1, const char * str2 ) http://www.cplusplus.com/reference/clibrary/cstring/strcmp/

Если вы хотите, чтобы сравнение строк было чувствительным к регистру, то есть "test" != "TEsT", используйте int memcmp ( const void * ptr1, const void * ptr2, size_t num ). http://www.cplusplus.com/reference/clibrary/cstring/memcmp/

Итак:

typedef char string[];
string sz1 = "This is a test string."
string sz2 = "This is a test string."
string sz3 = "This Is A Test String."
if(memcmp(sz1, sz2, strlen(sz1) > strlen(sz2) ? strlen(sz1) : strlen(sz2)) == 0)
    printf("sz1 and sz2 are equal");
else
    printf("sz1 and sz2 are not equal");
if(memcmp(sz1, sz3, strlen(sz1) > strlen(sz2) ? strlen(sz1) : strlen(sz2)) == 0)
    printf("sz1 and sz3 are equal");
else
    printf("sz1 and sz3 are not equal");
if(strcmp(sz2, sz3) == 0)
    printf("sz2 and sz3 are equal");
else
    printf("sz2 and sz3 are not equal");

РЕДАКТИРОВАТЬ: Вы также можете использовать stricmp () для сравнения с учетом регистра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...