如何比较char / string?

时间:2010-09-06 05:33:11

标签: visual-c++

如何声明和比较字符串?

// test ="my test string";

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

如何将test与testDest进行比较?

2 个答案:

答案 0 :(得分:1)

使用strcmp。但我建议你先阅读一本关于C编程的书。

答案 1 :(得分:0)

对于非大小写敏感的比较,请尝试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()进行区分大小写的比较。