Название: Удаление чисел с конца строки Отправлено: Yuriy от Декабрь 06, 2011, 23:48 Простая задача. Нужно удалить числа с конца строки. Много перепробывал вариантов, сейчас остановился на этом:
Код: while(nameForFind[nameForFind.length()-1].digitValue() != -1) Название: Re: Удаление чисел с конца строки Отправлено: Пантер от Декабрь 06, 2011, 23:51 Зачем изменять строку на каждой итерации? Найди нужный индекс и с него удали.
Название: Re: Удаление чисел с конца строки Отправлено: Yuriy от Декабрь 06, 2011, 23:54 Я честно говоря раньше не "заморачивался" на тему работы со строками и влегкую влепил бы сюда QRegExp к примеру, но после недавних экспериментов и потери производительности На 20-30%% из за вот таких нюансов начал "экономить на спичках". Создать счетчик на число найденных с конца числовых значений?
Название: Re: Удаление чисел с конца строки Отправлено: Пантер от Декабрь 07, 2011, 00:00 Код Уже засыпаю практически, это то, что пришло первое на ум. Название: Re: Удаление чисел с конца строки Отправлено: Yuriy от Декабрь 07, 2011, 00:09 Спасибо огромное! А то у самого голова не варит уже.
Название: Re: Удаление чисел с конца строки Отправлено: qt_user от Декабрь 07, 2011, 01:39 помойму, лучше так:
Код
Название: Re: Удаление чисел с конца строки Отправлено: Yuriy от Декабрь 07, 2011, 01:54 А я сейчас вот так сделал, пока другим занимался, но все равно так и хочется вернуться к этой теме:
Код: const int length = strlen(BaseName); в функцию приходит const char* и QString считывается с него только в нужных размерах. По-моему здорово, только не знаю этот самый isdigit() кроссплатформенный вообще ??? Название: Re: Удаление чисел с конца строки Отправлено: Yuriy от Декабрь 07, 2011, 02:03 И вообще на asm в 15-20 тактов можно заколотить. Только вот собрать потом на бесплатном M& навряд ли получится. ;D
Название: Re: Удаление чисел с конца строки Отправлено: qt_user от Декабрь 07, 2011, 10:43 в функцию приходит const char* и QString считывается с него только в нужных размерах. По-моему здорово, только не знаю этот самый isdigit() кроссплатформенный вообще ??? если кодировки стоят правильно, то все будет нормально ( setCodecForCString() ) |