183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
|
||||||
1 | ||||||
Удаление символов из строки09.10.2013, 12:05. Показов 1666. Ответов 13
Метки нет (Все метки)
в С++ есть некая процедура, есть ли аналог в Си?
0
|
09.10.2013, 12:05 | |
Ответы с готовыми решениями:
13
Удаление символов из строки Удаление n символов из строки Удаление символов строки Удаление символов из строки |
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
09.10.2013, 12:24 | 2 |
в Си нет классов, и, как следствие, нет класса строк. Строки в Си это нультерминированная последовательность char'ов.
Если нужно удалить символ из Си-строки, можно просто работать со строкой как с массивом, т.е. сместить все элементы (символы) после удаляемого на 1 влево.
1
|
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
|
|
09.10.2013, 12:26 [ТС] | 3 |
Tulosba, т.е. никаких стандартных функций нет для удаления?
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
09.10.2013, 12:28 | 4 |
Ryuk, для удаления нет. см http://www.cplusplus.com/reference/cstring/
0
|
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
|
|
09.10.2013, 12:29 [ТС] | 5 |
Tulosba, да был там уже)
0
|
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
|
|
09.10.2013, 12:38 [ТС] | 7 |
Tulosba, а что будет лучше(по ресурсам и по времени) использовать, сдвиг или через стандартные функции?
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
09.10.2013, 12:53 | 8 |
По используемой памяти сдвиг будет лучше. По времени выполнения надо проверять. Но я бы не стал на этом заострять внимание раньше времени. Сделайте сначала рабочий вариант, а потом займетесь оптимизацией (если она будет актуальна вообще).
Добавлено через 8 минут Ryuk, в реализации std::string::erase в VS используется memmove в потрохах. Можете и Вы такой же подход использовать в Си.
1
|
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
|
|
09.10.2013, 13:29 [ТС] | 9 |
Tulosba, нашел данную функцию, но разобраться не разобрался в ее работе. Не могли бы вы объяснить?
0
|
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
|
|
09.10.2013, 14:04 [ТС] | 11 |
Tulosba, memmove
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
09.10.2013, 14:21 | 12 |
Ryuk, http://www.cplusplus.com/refer... g/memmove/
перевод нужен?
0
|
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
|
|
09.10.2013, 15:13 [ТС] | 13 |
Tulosba, желательно)
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
09.10.2013, 15:20 | 14 |
Не по теме: учитесь пользоваться гуглом, если язык трудно освоить. Функция копирует num байт из памяти, адресуемой source, в память, адресуемую destination. Копируемые блоки могут пересекаться. Это ее основное отличие от memcpy(), в которой блоки не должны пересекаться.
1
|
09.10.2013, 15:20 | |
09.10.2013, 15:20 | |
Помогаю со студенческими работами здесь
14
Удаление символов из строки Удаление символов из строки Удаление символов из строки Удаление символов из строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |