Длина строки

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
admsasha
Сообщения: 5
Зарегистрирован: 21 сен 2004, 08:56

Как в C++ под Linux узнать длину числа ?

если точнее то мне надо 123456 запихать в массив, что бы сравнить с другими числами, типа с
1234567
55446778
12346789

т.е. в 123456789 самое длинное число с вхождением 123456.
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

Че-то я не понял если у тебя число хранится как число - long int etc то можно его делить на 10 и считать количество таких делений пока не получится ноль если же у тебя в char[] поцифрам то есть метод strlen() если у тебя std::string то там вроде ест ьметод length или что-то такое - нет справочника под рукой
В SAD - все в SAD.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Исли число - long, то можно поступить проще. Есть такая замечательная математическая функция, как логарифм. Езли взять логарифм по основанию 10 от любого числа, отсечь дробную часть а потом прибавить 1 - получим количество цифр в числе. (для отрицательных чисел и нуля подход неверен потому как, логарифм определён только на положительной полуоси, а lim log (n) = -inf , (n -> 0+)).
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Hup
Сообщения: 207
Зарегистрирован: 05 мар 2004, 05:31
Откуда: Владивосток
Контактная информация:

Блин, Romeo/// Проверил твоё утверждение... Просто супер, обязательно запомню :)
Усложнять - легко, упрощать - сложно
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Математика - неимоверно мощное оружие. Это тебе не по клавишам стучать :)
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
versus
Сообщения: 45
Зарегистрирован: 12 май 2004, 01:37

Исли число - long, то можно поступить проще.
А почему только для long?
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

А почему только для long?
Конечно же имял ввиду просто целое число, извиняюсь, господа. Сказалась привычка программирования на 32-битной платформе, где все целые удобно делать long для оптимизации программы по скорости.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить