Обнуление строки string
А есть более традиционный и правильный вариант, или разницы особо нет?
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.7.43281
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Правильный способ очистить C-строку
Мне интересно, каким будет правильный способ очистить строку в C. Будет ли это так?
4 ответов
Это зависит от того, что вы подразумеваете под «пустым». Если вы просто хотите строку нулевой длины, то ваш пример будет работать.
Это также будет работать:
Если вы хотите обнулить все содержимое строки, вы можете сделать это так:
но это будет работать только для обнуления до первого нулевого символа.
если строка является статическим массивом, вы можете использовать:
два других способа strcpy(str, «»); и string[0] = 0
чтобы действительно удалить содержимое переменной (в случае, если у вас есть грязный код, который не работает должным образом с фрагментами выше :P), используйте цикл, как в примере ниже.
Если вы хотите очистить динамический выделенный массив символов с самого начала, вы можете использовать комбинацию malloc () и memset() или — и это намного быстрее-calloc (), который делает то же самое, что и malloc, но инициализирует весь массив с нулем.
наконец — то я хочу, чтобы вы имели в виду свою среду выполнения. Более того, если вы обрабатываете огромные массивы (6 цифр и выше), вы должны попытаться установить первое значение в Null вместо запуска memset() через всю строку.
сначала это может выглядеть грязнее, но намного быстрее. Вам просто нужно обратить больше внимания на свой код;)
надеюсь, это было полезно для всех;)
зависит от того, что вы подразумеваете под опорожнять. Если вы просто хотите пустую строку, вы можете сделать
Если вы хотите установить каждый элемент в ноль, сделайте
требуется имя строки и ее длина будет ноль всех символов другие методы могут остановиться на первом нуле, с которым они сталкиваются
Как очистить массив символов в C?
Программирование и разработка
Массивы символов используются для хранения нескольких символьных элементов в непрерывно выделенной памяти. В нескольких вопросах у нас есть необходимость очистить массив символов, но вы не можете очистить массив символов, установив для отдельных членов какое-то значение, указывающее, что они ничего не содержат. Итак, нам нужны какие-то другие методы для выполнения этой задачи. Давайте проверим несколько методов для выполнения этой задачи.
Методы очистки массива символов в C упомянуты ниже:
- Использование элемента NULL
- Использование strcpy для очистки строки
- Использование memset для очистки
- Очистка динамического массива символов с помощью бесплатного
1. Очистка строки в C с использованием (’/0′)
Элемент ’\0′ в строке или массиве символов используется для идентификации последнего элемента массива символов. Для пустого массива символов первым элементом является элемент ’\0′. Итак, мы можем использовать это свойство строки для очистки массива.