Убедитесь, что вы используете strncmp, а не strcmp.strcmp глубоко небезопасен .
BSD-страницы (хотя любой nix даст вам эту информацию):
man strncmp
int strncmp(const char *s1, const char *s2, size_t n);
Функции strcmp () и strncmp () лексикографически сравниваютстроки с нулевым символом в конце s1 и s2.
Функция strncmp () сравнивает не более n символов.Поскольку strncmp () предназначен для сравнения строк, а не двоичных данных, символы, которые появляются после символа `\ 0 ', не сравниваются.
strcmp () и strncmp () возвращают целое число больше чем, равноеили меньше 0, так как строка s1 больше, равна или меньше строки s2.Сравнение выполняется без знака, поэтому \200' is greater than
\ 0 '.
From: http://www.codecogs.com/reference/c/string.h/strcmp.php?alias=strncmp
#include <stdio.h>
#include <string.h>
int main()
{
// define two strings s, t and initialize s
char s[10] = "testing", t[10];
// copy s to t
strcpy(t, s);
// test if s is identical to t
if (!strcmp(s, t))
printf("The strings are identical.\n");
else
printf("The strings are different.\n");
return 0;
}