|
|
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
v6y maytonКруто! Способность к оптимизации на низком уроване!! А еще у кого есть варианты? Смелее! Круто, но слишком понятно Поэтому несколько переделаю код alex_k-я Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 11:30 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
Можно рассмотреть концепцию интерфейса перевернутой строки. То есть переопределить строковые операции для обратных строк. Пример кода на "псевдо-языке": Код: plaintext 1. 2. 3. Выигрываем на времени выполнения. И получаем благодарность от жителей стран Востока которые пишут справа налево. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 11:30 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
maytonВыигрываем на времени выполнения. И получаем благодарность от жителей стран Востока которые пишут справа налево. О , как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 11:35 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
2 FishingGod Молодец! Бонус за функциональный подход! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 11:37 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
JibSkeart maytonВыигрываем на времени выполнения. И получаем благодарность от жителей стран Востока которые пишут справа налево. О , как Что как? Выигрываем? Или получаем благодарность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 11:40 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
maytonМожно рассмотреть концепцию интерфейса перевернутой строки. То есть переопределить строковые операции для обратных строк. Пример кода на "псевдо-языке": Код: plaintext 1. 2. 3. Выигрываем на времени выполнения. И получаем благодарность от жителей стран Востока которые пишут справа налево. А каким образом выигрываем на времени выполнения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 11:46 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
Обьясняю популярно. Строка НЕ ПЕРЕВОРАЧИВАЕТСЯ. Изменяются методы ввода-вывода строки на консоль и строковые операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 11:53 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
maytonОбьясняю популярно. Строка НЕ ПЕРЕВОРАЧИВАЕТСЯ. Изменяются методы ввода-вывода строки на консоль и строковые операции. Ну тогда для доступа к отдельным частям строки все равно придется применять некие арифметические операции: типа str[j] должно вернуть str[len-j-1] (j=0,len-1) и т.д. Может тогда проще один раз перевернуть и не париться? Или я опять вашу идею недопонял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 12:26 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
v6y maytonОбьясняю популярно. Строка НЕ ПЕРЕВОРАЧИВАЕТСЯ. Изменяются методы ввода-вывода строки на консоль и строковые операции. Ну тогда для доступа к отдельным частям строки все равно придется применять некие арифметические операции: типа str[j] должно вернуть str[len-j-1] (j=0,len-1) и т.д. Может тогда проще один раз перевернуть и не париться? Или я опять вашу идею недопонял Вы все верно поняли. Но все зависит от конечных целей вашей разработки. К примеру .. если вы умножаете две матрицы (class Matrix), то по правилам математики, строка первой матрицы должна умножатся на столбец другой. Но для этого нам не нужно переворачивать вторую. Мы можем определить интерфейс ITransposeMatrix для класса Matrix где операция [i,j] будет возвращать то что требуется без перестановок в оперативной памяти. Сравнивая затраты на операцию [] и физическую реорганизацию элементов в двумерном массиве, я могу сказать что первое - предпочтительнее. Я привел слишком простой пример. Чтобы почувствовать вкус программирования с использованием интерфейсов надо создать нечто большее. Если автор топика расскажет подробнее о самой постановке задачи, где требуется "кувыркать" строки, то возможно я .. и другие коллеги дадим более детальный совет. С уважением Mayton ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 13:40 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
SergLetЕсть char *a = "hack"; получить "kcah"! Самое главное элегантно! А если взять из StrUtils функцию ReverseString("hack"); C++Builder 6 Note: This method does not work with multibyte character sets. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 13:56 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
maytonК примеру .. если вы умножаете две матрицы ...едпочтительнее спасибо, было оч интересно увидеть красивое решение проблемы, к-рую как-то решал сам =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 14:16 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
dwlвобчем главная идея - используйте STL, и жить станет проще Код: plaintext 1. 2. 3. 4. 5. Зачем отнимать 1? Все стандартные алгоритмы принимают полуоткрытые интервалы, так что правильно так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 15:26 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
Да, и чтобы было совсем правильно, переменная old должна быть объявлена как показано ниже, так как объевление переменной old как char *old = "1234" скрывает неявный const и программа просто не скомпилируется: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 15:33 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
тут поделились интересным кодом . его содержимое говорит само за себя, любопытная штука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 20:47 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
У меня atoi почти как у alex_k, потому и написал что не успел. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 09:47 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
2зёма а чего, если первый символ равен '-' то тогда не надо делать str++? или он сделается, а как я не догоняю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 09:56 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
alex_k2зёма а чего, если первый символ равен '-' то тогда не надо делать str++? или он сделается, а как я не догоняю? Ты видишь, что break-ов в switch-e нет? Вот в этом вся идея. То есть + или -, str++ выполнится в любом случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 10:32 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
не умею swith ем пользоваться :-) как-то не прижилось после паскалевково case слишком навороченно както :-) надо разбираться конечно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 10:37 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков Ты видишь, что break-ов в switch-e нет? Вот в этом вся идея. То есть + или -, str++ выполнится в любом случае. Совершенно верно. А вообще, switch в C мне намного больше нравится чем case в Паскале. --- С уважением, Dubrov. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 05:44 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
dwlвобчем главная идея - используйте STL, и жить станет проще Код: plaintext 1. 2. 3. 4. 5. Задача стояла - написать ф-цию переворота строки, а не использовать что-то написаное кем-то. (Просьба не обижаться, это просто константация факта, а не наезд). --- С уважением, Dubrov. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 06:44 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
Дайте и мне шашкой помахать :) Код: plaintext 1. 2. JibSkeart, ты письмо получил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 07:40 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
Ещё короче: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 08:07 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
DubrovУ меня atoi почти как у alex_k, потому и написал что не успел. не учитывает граничные значения интов и ошибку переполнения. насчет "переворота" Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 09:18 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
dwl не учитывает граничные значения интов и ошибку переполнения. В книге Р.Жешке "Толковый словарь языка C" в описании функции atoi написано: ... если результат превосходит MAX_INT, происходит ошибка ввода-вывода ... результат функции не определен. Так что как я понимаю отслеживание таких глюков должен производить программист использующий функцию, а не ее (функции) разрабочик. Как поведет себя следующая конструкция: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. --- С уважением, Dubrov. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 09:41 |
|
||
|
Кто знает самую короткую и красивую функцию переворота строки?
|
|||
|---|---|---|---|
|
#18+
А ввобще, давайте перенесем это обсуждение из "C++" в "Программирование", интересно как эту задачу решат люди сидящие на других языках. Просто я не знаю как это сделать, с кем договариваться (с модератором, наверное?). --- С уважением, Dubrov. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 09:44 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32918013&tid=2033611]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
88ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 401ms |

| 0 / 0 |
