Как объявить и сравнить строки?Как сравнить символ/строку?
// test ="my test string";
char testDest[256];
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest, p);
Как я могу сравнить тест с testDest?
Как объявить и сравнить строки?Как сравнить символ/строку?
// test ="my test string";
char testDest[256];
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest, p);
Как я могу сравнить тест с testDest?
Для не чувствительных к регистру сравнения попробуйте ИНТ 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");
EDIT: Вы также можете использовать stricmp() для чувствительных к регистру сравнения.
Использование strcmp
. Но я бы предложил вам сначала прочесть книгу по программированию на языке C.
strcmp является «точным», если «точным», вы имеете в виду чувствительность к регистру. Вариант без учета регистра называется stricmp. –
'stricmp' не существует в стандартной библиотеке C99. Возможно, вы имеете в виду POSIX. – dirkgently