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

Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? - C++

Восстановить пароль Регистрация
 
Vladislavv
0 / 0 / 0
Регистрация: 30.07.2014
Сообщений: 98
30.07.2014, 21:31     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #1
подскажите пожалуйста, есть ли возможность в char массив часть данных ввести в буквах, а часть в цифрах (или в любой другой массив вбить значения обоих типов)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2014, 21:31     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах?
Посмотрите здесь:

Как преобразовать часть массива char в double C++
есть часть кода с указателем на массив. в общем, объяснять не умею. в коде вы уж точно поймете C++
Ошибка в задаче: Найти мин. k, которое будет удовлетворять условию: fabs(правая часть - левая часть) < 10^(-15) C++
почему часть текста исчезает ? переменная char и цикл C++
C++ Алгоритм Дейкстры (часть кода есть)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2014, 21:35     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #2
char - однобайтовое число. Цифры - это символы "0" - "9" (char). Чтобы лучше понять, что нужно, приведите какой-нибудь пример.
Vladislavv
0 / 0 / 0
Регистрация: 30.07.2014
Сообщений: 98
30.07.2014, 21:45  [ТС]     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #3
есть функция modulo, которая считает остаток от деления числа а на число b. Если он больше 9 то переходит в функцию notation(s), которая присваивает ему буквенное значение(с ней все в порядке). В обратном
случае берет непосредственно s. Также есть функция main, в которой находятся a(f) и b(not), а также массив char ar[n], в который вносятся значения с функции modulo. Вопрос: можно ли заполнить массив и цифрами и буквами.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int modulo (int a, int b){
int s;
char m;
s=a%b;
if (s>9){
m=notation(s);
return m;}
else {
    m=char('s');
    return s;
}
}
void main(){
const int n=15;
char ar[n];
int f=27, not=14;
for (int i=n-1; i>0;i--){
ar[i]=modulo(f, not);
    f/=not;
    cout <<ar[i];
}
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2014, 22:01     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Покажите, что notation() делает. И смысл этой конструкции?
C++
1
2
3
4
5
     else
     {
        m = char('s');
        return s;
     }
Добавлено через 6 минут
Число от 0 до 9 (s) переводится в цифры (коды символов (char) от "0" до "9") вот так: s + 48.
C++
1
return (s + 48);
Vladislavv
0 / 0 / 0
Регистрация: 30.07.2014
Сообщений: 98
30.07.2014, 22:01  [ТС]     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #5
char ('s') попытка вернуть в char значения s
C++
1
2
3
4
5
6
7
char notation (int d){
    char ss=0;
    char l='A';
    for (int i=10; i<=d ;i++,l++)
        ss=l;
    return ss;
    }
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2014, 22:04     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #6
Цитата Сообщение от Vladislavv Посмотреть сообщение
char ('s') попытка вернуть в char значения s
Нет, тут просто m присваивается значение 's'.
Vladislavv
0 / 0 / 0
Регистрация: 30.07.2014
Сообщений: 98
30.07.2014, 22:04  [ТС]     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #7
alsav22 спасибо, помогло
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16821 / 5242 / 318
Регистрация: 30.03.2009
Сообщений: 14,118
Записей в блоге: 26
31.07.2014, 20:35     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #8
Символ в одинаковых кавычках - это всего лишь альтернативная форма записи чисел. Т.е. следующие два кода эквивалентны:

C
int x = '0';
C
int x = 48;
'0' - это всего лишь удобная форма записи числа 48 (а точнее, величины (char)48)
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
31.07.2014, 22:10     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #9
Evg, может быть с точки получения итогового значения в x код и является эквивалентным для ASCII кодировки. Однако не стоит забывать, что в С++ '0' имеет тип char, и занимает 1 байт, а в Си это по сути int, с вытекающим отсюда размером.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16821 / 5242 / 318
Регистрация: 30.03.2009
Сообщений: 14,118
Записей в блоге: 26
31.07.2014, 22:12     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #10
Tulosba, да, в очередной я упустил из виду различие в Си и Си++. Т.е. мою последнюю фразу надо переписать как

'0' - это всего лишь удобная форма записи числа 48, которая в Си эквивалентна (char)48, а в Си++ - (int)48
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
31.07.2014, 22:36     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #11
Цитата Сообщение от Evg Посмотреть сообщение
а в Си++ - (int)48
Не совсем так. '0' в плюсах это char, никакого int'а тут нет. преобразование в int появляется только, если всё это сохранить в int'овую же переменную. Т.е. упомянутый int x.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2014, 23:20     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах?
Еще ссылки по теме:

GCC как часть библиотек линковать статически, а часть динамически? C++
Как сделать возможность выбора, между какими столбцами матрицы вставить новый столбец? [часть кода внутри] C++
Разделить дробное число на 2 части: целая часть числа и его дробная часть C++

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16821 / 5242 / 318
Регистрация: 30.03.2009
Сообщений: 14,118
Записей в блоге: 26
31.07.2014, 23:20     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах? #12
Цитата Сообщение от Tulosba Посмотреть сообщение
'0' в плюсах это char, никакого int'а тут нет. преобразование в int появляется только, если всё это сохранить в int'овую же переменную. Т.е. упомянутый int x
Преобразование типа появляется всегда при присвоении величины одного типа в переменную другого типа. А я по ходу ошибся и перепутал поведение в Си и Си++. Хотя мне казалось, что изначально было правильно

C
#include <stdio.h>
 
int main (void)
{
 
  if (sizeof ('a') == sizeof (int))
    printf ("int\n");
  else if (sizeof ('a') == sizeof (char))
    printf ("char\n");
  else
    printf ("hz\n");
 
  return 0;
}
Код
$ gcc t.c
$ ./a.out
int

$ mv t.c t.cc
$ g++ t.cc
$ ./a.out
char
Yandex
Объявления
31.07.2014, 23:20     Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах?
Ответ Создать тему
Опции темы

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