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

Преобразование из int в char в массиве (не обычно) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
17.10.2010, 13:51     Преобразование из int в char в массиве (не обычно) #1
Прет всем.
есть файл с 2 строками
456321
hi man

Нужно поставить по индексу типо если первая цифра 4, то берем 4 сивол из строки и ставим под 4 и тд., и записать в массив v;
_________ 456321
(4 символ) man ih

Тут вроде все норм
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        ifstream in;
    ofstream out;
    in.open("in.txt");
    out.open("out.txt", ios::app);
//----------------
    char a;
    char x[20];
    char p[20];
    char v[20];
    in.getline(x,20); //берем первую строку с цифрами
    in.getline(p,20); //берем вторую строку с буквами
    for (int i=0;i<10;i++){
        a = x[i]; //вот тут и ошибка берется код символа а не значение. 
        v[i] = p[a];
    }
Пробовал так
C++
1
2
3
4
5
6
7
8
9
10
11
12
char a;
int z;
    char x[20];
    char p[20];
    char v[20];
    in.getline(x,20); //берем первую строку с цифрами
    in.getline(p,20); //берем вторую строку с буквами
    for (int i=0;i<10;i++){
        a = x[i]; //вот тут и ошибка берется код символа а не значение. 
    z = atoi(a);  //пишет  error C2664: atoi: невозможно преобразовать параметр 1 из 'char' в 'const char *'
        v[i] = p[z];
    }
хелп
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2010, 13:51     Преобразование из int в char в массиве (не обычно)
Посмотрите здесь:

Преобразование int и char в строку C++
Работа с файлами. Преобразование char в int C++
преобразование между char и int C++
C++ Преобразование int к char
Преобразование указателя из char в int и double C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
17.10.2010, 14:13     Преобразование из int в char в массиве (не обычно) #2
Цитата Сообщение от borovik Посмотреть сообщение
for (int i=0;i<10;i++){
вместо 10 стоило бы использовать длину строки, ну это так

Цитата Сообщение от borovik Посмотреть сообщение
a = x[i]; //вот тут и ошибка берется код символа а не значение.
это правда, надо перевести из char в int, делается это обычно
'7'-'0' = 7 (x[i]-'0')
это так сказать особенности ascii
конечно стоило бы проверять, что у вас число в char находится
потом, использовать стоило бы std::string
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
17.10.2010, 14:59  [ТС]     Преобразование из int в char в массиве (не обычно) #3
ничего не получилось, напиши как должно выглядеть
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
17.10.2010, 15:01     Преобразование из int в char в массиве (не обычно) #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 ifstream in;
 ofstream out;
 in.open("in.txt");
 out.open("out.txt", ios::app);
//----------------
 char a;
 char x[20];
 char p[20];
 char v[20];
 in.getline(x,20); //берем первую строку с цифрами
 in.getline(p,20); //берем вторую строку с буквами
 for (int i=0;i<10;i++){
 v[i] = p[x[i]-'0'];
}
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
17.10.2010, 15:06  [ТС]     Преобразование из int в char в массиве (не обычно) #5
Оо, большое спс теперь я разобрался
буду передавать знания (если кто спросит)
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
17.10.2010, 15:16     Преобразование из int в char в массиве (не обычно) #6
видимо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 ifstream in;
 ofstream out;
 in.open("in.txt");
 out.open("out.txt", ios::out);
//----------------
 char a;
 char x[20];
 char p[20];
 char v[20];
 in.getline(x,20); //берем первую строку с цифрами
 in.getline(p,20); //берем вторую строку с буквами
 size_t len = strlen( p );
 for (int i=0;i<len;i++){
  v[i] = p[x[i]-'0'];
 }
 v[i] = '\0';
Yandex
Объявления
17.10.2010, 15:16     Преобразование из int в char в массиве (не обычно)
Ответ Создать тему
Опции темы

Текущее время: 07:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru