Перейти к содержимому

Как очистить строку в си

  • автор:

Обнуление строки string

Какой смысл вы вкладываете во «временность» опустошения строки? А в не временном случае должно быть какое-то другое решение?

27 фев 2018 в 12:02
@Kromster что бы сразу отсеять предложения о полном удалении переменной через деструктор.
27 фев 2018 в 12:05

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

m.clear(); if (m.empty()) 

Отслеживать
ответ дан 27 фев 2018 в 11:57
moskalenco_a moskalenco_a
918 5 5 серебряных знаков 19 19 бронзовых знаков

Так даже лучше. clear() делает одну-единственную операцию — обнуляет поле длины строки. А исходно предлагаемое присваивание «» вызывает попытку скопировать строковый литерал (хоть и состоящий из одного нуль-терминатора).

27 фев 2018 в 12:19

@Arhad у clear сложность линейная, более того: «Effects: Behaves as if the function calls: erase(begin(), end()); «

27 фев 2018 в 14:22

@alexolut, libstdc++ так не думает. clear() вызывает _M_mutate() , передавая ей исходную длину строки и нули в качестве новой длины и смещения. Далее, единственное, что вызывает _M_mutate() с такими аргументами — это _M_set_length_and_sharable() , помечающая буфер общим и выполняющая this->_M_length = __n; . Получаем константную сложность.

Как очистить строку в C++?

Как очистить строку, чтобы в ней вообще ничего не было, как при создании?

  • Вопрос задан более трёх лет назад
  • 33837 просмотров

Комментировать

Решения вопроса 0

Ответы на вопрос 5

Taraflex

Ищу работу. Контакты в профиле.

Ответ написан более трёх лет назад

Нравится 5 2 комментария

Nik_Haker @Nik_Haker Автор вопроса

без iostream можно?

donkaban

1. Можно
2. А зачем?
3. А попробовать?

Сверхразум

Ответ написан более трёх лет назад

donkaban

Зачем советовать что бы то ни было СМОТРЕТЬ?

dominqnta

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

baraboshinkg

Константин @baraboshinkg

Программист С/С++

Если C строка то:
str[0] = 0;

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

int len = LEN_SIZE; char *txt; txt = malloc(sizeof(*txt)*len); for(int a = 0 ; a

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Ваш ответ на вопрос

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

cpp

  • C++

Не могу, понять как компьютер перемещает свой знак?

  • 1 подписчик
  • 19 часов назад
  • 90 просмотров

cpp

  • C++
  • +2 ещё

Почему не компилируется код C++ в VS code/Platformio?

  • 1 подписчик
  • 22 часа назад
  • 68 просмотров

программирование

  • Программирование
  • +1 ещё

Как решить задачу «Шестерки» с меньшими затратами памяти?

  • 1 подписчик
  • 03 янв.
  • 126 просмотров

cpp

  • C++

Что быстрее индексы или указатели?

  • 1 подписчик
  • 03 янв.
  • 174 просмотра

c#

  • C#
  • +4 ещё

Как реализовать движение частиц в векторном поле или сплошной среде?

  • 1 подписчик
  • 03 янв.
  • 109 просмотров

windows

  • Windows
  • +2 ещё

Как отлавливать курсор при наведении на дочернее окно?

  • 1 подписчик
  • 02 янв.
  • 119 просмотров

javascript

  • JavaScript
  • +3 ещё

Как правильно рассчитать коэффициент полезного использования пространства?

  • 1 подписчик
  • 31 дек. 2023
  • 232 просмотра

программирование

  • Программирование
  • +1 ещё

Как добавить карту в сервис?

  • 1 подписчик
  • 31 дек. 2023
  • 102 просмотра

программирование

  • Программирование
  • +2 ещё

Полезность моделей памяти которые отличный от linear?

  • 2 подписчика
  • 31 дек. 2023
  • 313 просмотров

cpp

  • C++

Как обеспечивается совместимость динамических библиотек при ликовке в рантайме?

  • 3 подписчика
  • 30 дек. 2023
  • 312 просмотров

До 200 000 ₽

от 300 000 до 350 000 ₽

от 160 000 ₽

08 янв. 2024, в 20:24

3000 руб./за проект

08 янв. 2024, в 20:10

500 руб./за проект

08 янв. 2024, в 19:59

50000 руб./за проект

Минуточку внимания

Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями

  • Как наработать навык декомпозиции задач?
    • 4 подписчика
    • 3 ответа
    • 2 подписчика
    • 0 ответов
    • 2 подписчика
    • 2 ответа
    • 3 подписчика
    • 1 ответ
    • 3 подписчика
    • 0 ответов
    • 2 подписчика
    • 0 ответов
    • 2 подписчика
    • 5 ответов
    • 2 подписчика
    • 3 ответа
    • 2 подписчика
    • 1 ответ
    • 2 подписчика
    • 1 ответ

    Очистка строки C++

    Утро доброе.
    Для чистки строк типа char используют memset, и подобные функции. А как очистить строку С++, то есть std::string .

    Наткнулся на метод clear, но так и не разобрался, он ли.

    Голосование за лучший ответ

    1) да, clear отчистит строку
    2) memset для char* — слишком долго, текстовые Си-строки «чистятся» так: str[ 0 ] = 0; и все

    string s=»hello»;
    s=»»;// очистить строку
    Похожие вопросы
    Ваш браузер устарел

    Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

    Программирование на C, C# и Java

    Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

    ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode

    Как удалить все цифры из строки на Си

    Из статьи вы узнаете, как удалить все цифры из строки на Си. Будет приведен исходный код с комментариями. Можно скачать исходник программы. Используемый язык программирования — C.

    Введение

    Данная проблема часто встречается у новичков, и, практически каждый, кто более-менее серьезно увлекется программированием, столкнется с такой задачей. Вопрос, как удалить все цифры из строки с помощью языка программирования Си — это очень популярный запрос к поисковым машинам.

    Для начала немножко теории. Формально, строк, как типа данных, в чистом Си — нет. Строка, в данном языке — это последовательность символьных элементов (массив типа char).

    Строка обязательно должна завершаться символом конца строки: ‘\0’ (нулевой символ). Иначе при работе с, так называемыми, «строковыми» функциями (например: puts, printf, strcpy) будут возникать ошибки.

    Удалить все цифры из строки

    Пусть в символьном массиве in хранится исходная строка. Необходимо удалить все цифры из строки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *