Как можно проверить строки, хранящиеся в char* на полную идентичность?
Пытаюсь реализовать алгоритм LZW на C. значения слов храню в char*, а само слово - структура.
typedef struct Word {
unsigned int code;
char * value;
} Word;
Словарь организовал так
Word * dictionary [4096];
Есть еще текущее слово
Word prefix;
Правда ли, что этим кодом:
if (prefix.value == dictionary[i]->value){
prefix.code = dictionary[i]->code;
// Выходим из цикла проверки, возвращаемся к основному циклу
break;
}
}
Я сравниваю два указателя? То есть два адреса в памяти, которые понятное дело не равны? Правильно ли я определил ошибку? Если это так, то как можно проверить на равенство те значения, которые находятся в char*?
Для тех, кому нужен полный код, прошу пройти к этому вопросу
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Правда, сравниваете два указателя.
Для сравнения C-style строк применяются функции типа strcmp, strncmp и т.п. (см. по указанной ссылке внизу страницы).