Сравнение двух строк в переменных - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, меня интересует 1 вопрос - почему происходит так, как происходит?) Если мы объявим:
#define max 10
...
const char* s1 = "s1";
const char* s2 = "s2";
char s5[max] = "";
то сравнение strcmp(s5, s1) пройдет нормально а если мы объявим:
const char* s1 = "s1", s2 = "s2";
char s5[max] = "";
то программа завершается при сравнении strcmp(s5, s2).
Кроме того, если объявить так
const char s1 = "s1", s2 = "s2";
char s5[max] = "";
и сравнивать strcmp(s5, s1) или strcmp(s5, s2), то программа то же закрывается. Да, я знаю, что строки заканчиваются '/0', но там же 2 строки и они обе должны так заканчиваться?) или я ошибаюсь?

Решение задачи: «Сравнение двух строк в переменных»

textual
Листинг программы
const char s1 = "s1", s2 = "s2";
char s5[max] = "";

Объяснение кода листинга программы

  1. Объявляются две константы типа const char: s1 и s2, и инициализируются строками s1 и s2 соответственно.
  2. Объявляется переменная типа char: s5, и инициализируется пустой строкой (в C пустая строка представляется как ``).
  3. Переменная s5 имеет тип char, но в C массивы строк (в том числе и массив s5) имеют тип char*.
  4. В C массивы строк имеют фиксированный размер, поэтому для работы с ними необходимо использовать функции из библиотеки .
  5. Если необходимо сравнивать строки, то лучше использовать функции strcmp() или strncmp().
  6. Для добавления символа в строку в C необходимо использовать функцию strcat().
  7. Для получения длины строки в C используется функция strlen().
  8. Для очистки памяти от ненужных строк в C можно использовать функцию free().
  9. В C строки сравниваются без учета регистра, поэтому для сравнения строк с учетом регистра необходимо использовать функции strncasecmp() или strcasecmp().
  10. Для поиска подстроки в строке в C используется функция strstr().
  11. Для замены подстроки в строке в C используется функция strreplace().
  12. Для разделения строки на части в C можно использовать функцию strtok().
  13. Для объединения нескольких строк в одну в C можно использовать функцию strcat().
  14. Для получения подстроки в C можно использовать функцию substr().
  15. Для сравнения двух строк в C можно использовать функцию strcmp().
  16. Для копирования строки в C можно использовать функцию strcpy().
  17. Для вставки подстроки в строку в C можно использовать функцию strinsert().
  18. Для удаления подстроки из строки в C можно использовать функцию strdelete().
  19. Для поиска позиции подстроки в строке в C можно использовать функцию strpos().
  20. Для формирования строки из массива символов в C можно использовать функцию strfromarray().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы