Brainenjii писал(а):мне часто надо находить подстроку, но ни разу не потребовался доступ к символу по индексу. Ни разу. За все время работы.
Если в целом смотреть массу кода, которая у меня есть (разных авторов), то довольно часто встречаются различные варианты реализации замеры, одних символов на другие. Самый частый - это замена точки на запятую и обратно (хотя это номера литералов меньше 128). Есть всякие там поиски подстрок с заменами, например, в единицах измерения вводится правильный регистр (например, "кг", "кВ", "км", "кА"), но замена идут условная, смотрится, чтобы эти символы шли после цифры, и если пробелов больше, чем один, то заменяется на один пробел, чтобы не произошла замена "квадрат", на "кВадрат", а "10кв", заменилось на "10 кВ". Учитывая, что есть код написанный еще 15-20 лет назад, то многие операции писались вручную в виде циклов, т.к. тогда в системной библиотеке не было соответствующих функций. Но и сегодня сама системная библиотека для выполнения данных операций организует посимвольный поиск с заменой, так что эти алгоритмы встречаются часто.
Добавлено спустя 2 минуты 6 секунд:alexs писал(а):Тут уже неоднократно говорилось - основыне операции со строками:
Вы в очередной раз пытаетесь утверждать за весь мир? Или это Ваш личный опыт? Прошу уточнять. Если Вы просмотрели весь код в мире, то это очень ценное замечание, если Вы посмотрели только свой код, то можно принять к сведению и не более.
Добавлено спустя 6 минут 27 секунд:alexs писал(а):Главное глупости не писать в коде.
Так многие уже написаны и не нами. Например, есть случаи, когда довольно большой текстовый файл с данными загружается в память, немного парсится, но данные не дублируются в иерархии классов, в полях классов хранят смещения к данным. В таком несколько нетипичном подходе есть даже свою плюсы, например, отсутствует дубляж в данных, нет проблем с тем, кто выделит и кто освободит память. Нет проблем с тем, что данные дописываются, и сам указатель на строку постоянно меняется, т.к. при увеличении длины строки она переносится в другую область памяти. Несколько непривычно, но работоспособно, и очень быстро работает, а учитывая что собственно прикладная логика очень там хорошая, то такую прогу не выкинешь.