![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Voldemar2004 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Есть ли в Си готовая функция, которая бы отсекала лишние пробелы (на подобие LTrim, RTrim, Trim в VB 6) ? А то я ничего не нашел и написал сам:
-------------------- i_i (';') (V) ![]() |
||||
|
|||||
| Darhazer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 28.9.2005 Где: HellCity (Sofia, Bulgaria) Репутация: 2 Всего: 29 |
Готовая функция думаю нету, но нашел вот такое STL решение:
А еще у CString есть методи TrimLeft и TrimRight P.S. или ти спрашиваеш про C, а не про C++? Это сообщение отредактировал(а) Darhazer - 28.5.2006, 14:37 -------------------- I'm a wheel, I'm a wheel, I can roll, I can feel But you can't stop me turning 'Cause I'm the sun, I'm the sun, I can move, I can run But you'll never stom me burning |
|||
|
||||
| LPBOY |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 12.7.2005 Репутация: 20 Всего: 20 |
Вот моя версия
STL-версия: http://blogs.msdn.com/marcod/archive/2005/07/08/StdTrim.aspx Voldemar2004, писать в такую строку
нельзя. Это просто указатель, никакой памяти не выделялось, разве что для константной литеральной строки "" размером 1, в которую также писать нельзя. Надо делать или так
если размер известен во время компиляции, иначе так
Это сообщение отредактировал(а) LPBOY - 28.5.2006, 15:16 --------------------
Каждый человек по-своему прав, а по-моему нет... |
||||||||
|
|||||||||
| Voldemar2004 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Пардон, это я сглупил. Вот исправил:
А это потому, что у меня присутствует:
Как думаете, есть еще недочеты? LPBOY, в этой строке у тебя по-моему ошибка:
Я спрашивал, есть ли функция наподобие int strlen(char *) из библиотеки string или другой библиотеки, которая отсекала бы пробелы. -------------------- i_i (';') (V) ![]() |
||||||||
|
|||||||||
| LPBOY |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 12.7.2005 Репутация: 20 Всего: 20 |
Компилировать я не пробовал, но вот, что бросается в глаза... (строка 9) for(i; a[i] == ' '; i++) {;} Зачем нужно выделенное? Это, конечно, не ошибка, но абсолютно бесполезно. (11) const CutLenLeft = i; //надо const int CutLenLeft = i; Не забывай указывать тип, компиляторы строго придерживающиеся стандарта такое не скомпилируют. (14) for(i=strlen(a); i--; i>0) Наверно, ты имел в виду вот так: for(i=strlen(a); i>0; i--) ;) Хотя более правильно будет так: for(i=strlen(a) - 1; i>=0; i--) (37) delete[] b; Эта строчка никогда не выполнится. Да и в любом случае очищать память должна вызывающая сторона. Для случая, когда length равно нулю, и блок if не выполняется, нет соответствующего return. Память, выделенная для новой строки, не очищается, надо сделать как-то так:
По идее они должны обнулять массив. Хотя старые компиляторы могут не знать про такой синтаксис. Это можно переписать вот так:
У меня, вроде, правильно отрабатывает. --------------------
Каждый человек по-своему прав, а по-моему нет... |
||||||
|
|||||||
| Voldemar2004 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
-------------------- i_i (';') (V) ![]() |
||||
|
|||||
| LPBOY |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 12.7.2005 Репутация: 20 Всего: 20 |
gcc выдает ошибку.
--------------------
Каждый человек по-своему прав, а по-моему нет... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |