Для жизни я не могу сравнить первый символ этого массива

Все, что я хочу сделать, это пройти в char* buffer и сравнить это с литеральной строкой "@" — почему это так сложно для меня.

    char* buffer = "@3702";
string b(buffer);
string c("@");

if (strncmp(b.c_str(), c.c_str(), 1) == 0)
{
perror("Buffer malformated!");
return false;
}

Что я не понимаю по этому поводу?

Редактировать: haaaa, != не == упс 🙂

0

Решение

Если вы просто хотите сравнить char*и использовать strncmp()Вам не нужно использовать строку stl для этого.

int main()
{
char* buffer = "@3702";
char* c = "@";

if (strncmp(buffer, c, strlen(c)) == 0)
{
//same string
return true;
}
else
{
//not same string
return false;
}

getchar();
}

И запомни char[] можно преобразовать в char*, так что в этом случае приведенный выше код аналогичен приведенному ниже.

int main()
{
char buffer[] = "@3702";
char c[] = "@";

if(buffer[0] == c[0])
{
//same string
return true;
}
else
{
//not same string
return false;
}

getchar();
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]