Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > argv[1][i] перевести в int


Автор: americanets 24.1.2010, 16:10
Код

#include <iostream>
#include <sstream> 
#include <string>
#include <cstring>

int main (int argc, char *argv[]) {
    int count = 0;
    if (argc < 2) {
        std::cout << "Введите с целое число" << std::endl;
    } else {
        int  lenD = strlen(argv[1]);
        for(int i=0; i < lenD; i++) {
            if (argv[1][i] == 7) {
                count++;
            }
        }
        std::ostringstream charCount;
        charCount << count;
        std::cout << "7 Встречается " <<  charCount.str() << std::endl;
    }
    return 1;
}


Как привести  argv[1][i] к нужному типу ? Например atoi ругается на 
Код

 invalid conversion from ‘char’ to ‘const char*’

Автор: andrew_121 24.1.2010, 16:11
atoi(argv[1])

Автор: comcon1 24.1.2010, 18:11
andrew_121, ты ответил не на тот вопрос. Символ '7' нужно преобразовать в число 7?
Это можно сделать так: символ '0' имеет код 48. Таким образом:
Код

char t = '7';
int num_t = (int)t - 48

Автор: 586 24.1.2010, 18:26
Цитата(comcon1 @  24.1.2010,  18:11 Найти цитируемый пост)
int num_t = (int)t - 48

smile
Код
char t = '7';
int num_t = (int)(t - '0');

Автор: Luyan 24.1.2010, 18:49
Цитата(comcon1 @  24.1.2010,  18:11 Найти цитируемый пост)
int num_t = (int)t - 48

Цитата(586 @  24.1.2010,  18:26 Найти цитируемый пост)
int num_t = (int)(t - '0');

не понимаю, зачем явное преобразование?
почему не так?
Код

char t = '7';
int num_t = t - '0';


Автор: 586 24.1.2010, 18:56
Цитата(Luyan @  24.1.2010,  18:49 Найти цитируемый пост)
не понимаю, зачем явное преобразование?

оно там не нужно
Цитата(Luyan @  24.1.2010,  18:49 Найти цитируемый пост)
почему не так?
Код
char t = '7';
int num_t = t - '0';

можно и так

Автор: Dov 24.1.2010, 19:13
самый простой способ:
Код
            if (argv[1][i] == '7') {
                count++;
            }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)