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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Metal_666_
15 / 15 / 2
Регистрация: 19.10.2009
Сообщений: 187
#1

Конвертация строки в число - C++

31.03.2010, 00:32. Просмотров 1044. Ответов 6
Метки нет (Все метки)

Стыдно конечно, но вот уже пол года изучаю с++ и только сейчас заметил что при данном коде
C++
1
2
3
4
5
6
7
8
9
10
#include <windows.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
    char ch[] = "234:1:9845";
    cout<<atoi(&ch[0]);
    system("pause");
    return 0;
}
Выводится 234, если &ch[6] то выведет 9845. Собственно почему так, просветите?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2010, 00:32     Конвертация строки в число
Посмотрите здесь:

Конвертация строки в число - C++
библиотека string, присваиваю целой переменной элемент строки, а он присваивает кодировку, тобишь если элемент строки '0' то переменная...

Конвертация строки в число: реализовать сложение чисел - C++
Привет Форумчане. В общем есть файл который мы успешно открыли в нем находятся в каждой строке по какому то числу, например: 0.64, а так...

Конвертация строки в массив символов - C++
Что тут не так?( getTextFromFile - считывает с файла сроку. Как переконвертировать строку что бы можно было установить в EDIT? string tmp...

Конвертация wchar_t в число целого типа. Обработка исключения - C++
Конвертирую считываемые данные с Экселя в число типа int,для дальнейшей проверки вхождения в массив. buff содержит значение 12345qwe ...

В двумерном массиве целых чисел добавить строки после строки, содержащей простое число - C++
В двумерном массиве целых чисел добавить строки после строки, содержащей простое число. Новая строка будет заполняться этим простым числом....

В динамической матрице целых чисел добавить строки после строки, содержащей простое число - C++
Помогите написать или хотя бы дайте пару подсказок В двумерном массиве целых чисел добавить строки после строки, содержащей простое...

Массив: Напечатать номер каждой строки, в которой второй элемент меньше среднего арифметического элементов этой строки, и число таких строк. - C++
Дана матрица А(m,n). Напечатать номер каждой строки, в которой второй элемент меньше среднего арифметического элементов этой строки,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
31.03.2010, 00:34     Конвертация строки в число #2
потому что &ch[6] это адрес строки "9845".
Metal_666_
15 / 15 / 2
Регистрация: 19.10.2009
Сообщений: 187
31.03.2010, 00:40  [ТС]     Конвертация строки в число #3
Т.е. получается что &ch[n] это строка с n-го до первого элемента не являющегося цифрой?
easybudda
Эксперт С++
9458 / 5471 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
31.03.2010, 01:06     Конвертация строки в число #4
Цитата Сообщение от Metal_666_ Посмотреть сообщение
Т.е. получается что &ch[n] это строка с n-го до первого элемента не являющегося цифрой?
Да. Вот простой пример реализации atoi() /при переполнении возвращает бессмысленное значение, но суть не в этом/
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* int atoi(const char*) принимает указатель на строку, содержащую целое число возвращает число */
int atoi(const char* s){
    int sign = 1;
    int value = 0;
 
    while ( isspace(*s) )
        ++s;
    if ( *s == '+' )
        ++s;
    if ( *s == '-' ){
        sign = -1;
        ++s;
    }
    while ( isdigit(*s) )
        value = value * 10 + *s++ - '0';
 
    return value * sign;
}
Metal_666_
15 / 15 / 2
Регистрация: 19.10.2009
Сообщений: 187
31.03.2010, 04:06  [ТС]     Конвертация строки в число #5
Спасибо большое!
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
31.03.2010, 10:47     Конвертация строки в число #6
Цитата Сообщение от Metal_666_ Посмотреть сообщение
Т.е. получается что &ch[n] это строка с n-го до первого элемента не являющегося цифрой?
Нет. Это строка с ch[n] элемента до символа конца строки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2010, 11:14     Конвертация строки в число
Еще ссылки по теме:

Из строки в число - C++
Как можно преобразовать строку с цифрами в число отдельной функцией, не используя atoi, но пользуясь стандартными библиотеками?

из строки --> Число - C++
Есть строка &quot;10000111&quot; -&gt; в переменную int b.??????Плизззз

Преобразование строки в число - C++
какой аналог есть в c++ на strtoint inttostr?

Перевод из строки в число - C++
Извиняюсь, если такая тема уже была. Есть строка s. В ней записано 2 вещественных числа. Нужно оба записать в переменные типа float....

Перевод строки в число - C++
Задание таково: нужно создать функцию, которая переводит строку из чисел типа string в число типа double (строку string нужно! посимвольно...


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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт С++
9458 / 5471 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
31.03.2010, 11:14     Конвертация строки в число #7
Цитата Сообщение от Vourhey Посмотреть сообщение
Это строка с ch[n] элемента до символа конца строки.
По-моему всё-таки правильнее "до первого элемента не являющегося цифрой". Если передать строку "123Ы45", atoi() вернёт 123
Yandex
Объявления
31.03.2010, 11:14     Конвертация строки в число
Ответ Создать тему
Опции темы

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