Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
qloaqa
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 7
#1

как преобразовывать в строках символы в числа - C++

08.12.2011, 22:53. Просмотров 1379. Ответов 6
Метки нет (Все метки)

Здравствуйте, я хотел бы узнать, как преобразовывать в строках символы в числа. Допустим, я задаю текст, состоящий из десятичного числа. Как вычислить сумму цифр этого числа?

(Если я правильно понимаю, нужно пройти по строке, найти это число, записать в какую-то переменную, затем вычислить сумму используя деление на 10?)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2011, 22:53     как преобразовывать в строках символы в числа
Посмотрите здесь:
Заменить символы в строках... C++
C++ нужно посчитать опреденные символы в строках
Работа с текстовым файлом (записать в файл строки и символы в строках в обратном порядке) C++
Заменить символами # символы, стоящие в строках или столбцах, где имеются цифры C++
Создать третью строку, которая должна содержать символы, присутствующие одновременно в обеих исходных строках C++
C++ Зачем преобразовывать itsVal в int, если эта переменная и так объявлена как тип int
C++ Не получается чтобы он все символы с текста читал и типа счетчика который считает одинаковые символы как один и плюсует их....Как сделать правильно???
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
08.12.2011, 22:59     как преобразовывать в строках символы в числа #2
qloaqa, ну всё Вы правильно понимаете. Пройдитесь по строке и найдите первую цифру числа ( isdigit поможет вам в этом) и потом получите число в виде float с помощью atof.
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
08.12.2011, 23:04     как преобразовывать в строках символы в числа #3
C++
1
2
3
4
unsigned int sum = 0;
for ( unsigned int index = 0; index < s.length(); index++ )
    sum += ( s[ index ] - '0' );
std::cout << sum << std::endl;
Это если строка - число.
n00b.vcxproj
Кодер
47 / 46 / 2
Регистрация: 10.10.2010
Сообщений: 229
08.12.2011, 23:08     как преобразовывать в строках символы в числа #4
В стандартной кодировке консоли (cp866) код символа '0' == числу 48. Код символа '9' == числу 57. Из этого можно сделать вывод, что чтобы перевести из char в int нужно ввести в переменную типа int код символа числа и вычесть 48.
C++
1
2
3
4
5
char a[5];
int b[5];
a="12345";
for(int i=0;i<5;++i)
b[i]=(int)a[i]-48;
а далее делайте что вам угодно: находите сумму итд;
qloaqa
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 7
08.12.2011, 23:37  [ТС]     как преобразовывать в строках символы в числа #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main ()
{
  string str="553";
  if ( isdigit(str[0]) )
  {
    int number, s=0;
    stringstream(str) >> number;
    for (; number !=0; number=number/10){
        s +=number - number/10 *10;
    }
    cout << s <<" ";
    }
  return 0;
}
Всем спасибо за ответы) Я сделал так. Не знаю, правда насколько это грамотно сточки зрения программирования.
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
09.12.2011, 01:24     как преобразовывать в строках символы в числа #6
Ну isdigit() я предлагал использовать с той целью чтобы Вы могли продвигаться в цикле по строке в поисках числа, ну например str="число 123" так вот здесь можно в цикле пройтись и проверять i элемент на то явл. ли он числом, если нет - сдвинуться на сл. элемент и так пока не будет найдено число (isdigit не вернёт true) или же не закончиться строка. Но можете оставить как есть, это Вам виднее какое там задание.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2011, 22:57     как преобразовывать в строках символы в числа
Еще ссылки по теме:
Нужно выяснить, какие символы встречаются в обеих строках, так же и те, которые встречаются только в одной C++
C++ Строки, символы. вычислить, сколько раз встречается каждый символ в обоих строках, вывести второе слово второй строки в обратном порядке
Дан целый массив максимальной размерности 20*20. Провести сортировку по возрастанию в нечетных строках массива и по убыванию в четных строках. C++
C клавиатуры вводится трехзначное число. Вывести цифры этого числа на отдельных строках C++
Записать нули вместо чисел в тех строках матрицы, где числа идут по возрастанию C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Olga93
0 / 0 / 0
Регистрация: 09.12.2011
Сообщений: 6
09.12.2011, 22:57     как преобразовывать в строках символы в числа #7
Цитата Сообщение от qloaqa Посмотреть сообщение
for (; number !=0; number=number/10){
s +=number - number/10 *10;
Извините, а не могли бы вы описать, что происходит в данных строках? (Для чего именно делится, а затем умножается на 10 в часности.)
Yandex
Объявления
09.12.2011, 22:57     как преобразовывать в строках символы в числа
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru