Все, что я хочу сделать, это пройти в 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, !=
не ==
упс 🙂
Если вы просто хотите сравнить 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();
}
Других решений пока нет …