@spezcial
Начинающий программист

Как можно сравнить строки в C?

Приветствую! Подскажите, пожалуйста, почему данный код не работает? Что именно я сделал не так?
Компиляция
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void) {
	
	int a;
	
	char str_1[30];
	char str_2[30];
	
	scanf("%s\n", str_1);
	scanf("%s", str_2);
	

	
	 a = stricmp(str_1, str_2);
	
	
	
	printf("%d", a);
	
	return 0;
}
  • Вопрос задан
  • 465 просмотров
Пригласить эксперта
Ответы на вопрос 2
@FD4A
Для более безопасной работы со строками в си лучше использовать семейство функций strn, например strncmp().
Ответ написан
Комментировать
CityCat4
@CityCat4 Куратор тега C
//COPY01 EXEC PGM=IEBGENER
Потому что stricmp - это какой-то неведомый зверь.
Есть стандартная strcmp - она не игнорит регистр и ищет конец строки по '\0', что очень часто приводит к SIGSEGV :)
Есть strncmp - она тоже не игнорит регистр, но сравнивает не более N символов, что считается более безопасным, если ты забыл '\0' поставить.
Есть strcasecmp и strncasecmp - полные аналоги, только регистр игнорят.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы