С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
1 / 1 / 2
Регистрация: 30.07.2014
Сообщений: 98

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

30.07.2014, 21:31. Показов 1807. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите пожалуйста, есть ли возможность в char массив часть данных ввести в буквах, а часть в цифрах (или в любой другой массив вбить значения обоих типов)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.07.2014, 21:31
Ответы с готовыми решениями:

Ошибка буквах есть а при цифрах все работает Unknown column 'eforie' in 'where clause'
Здравствуйте объясните плиз почему этот код выполняться когда ввожу цифры а если буквы то выдает такую ошибку... Ошибка: Unknown...

Ввести число х, выяснить что большеЖ целая часть х, или его Дробная часть, уу
Ввести число х, выяснить что больше: целая часть х, или его Дробная часть, умноженная на 10. Если первое, то число умножить на 10, если...

Ввести число х, выяснить что больше: целая часть х, или его дробная часть, умноженная на 10
Ввести число х, выяснить что больше: целая часть х, или его Дробная часть, умноженная на 10. Если первое, то число умножить на 10, если...

11
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2014, 21:35
char - однобайтовое число. Цифры - это символы "0" - "9" (char). Чтобы лучше понять, что нужно, приведите какой-нибудь пример.
0
1 / 1 / 2
Регистрация: 30.07.2014
Сообщений: 98
30.07.2014, 21:45  [ТС]
есть функция 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];
}
}
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2014, 22:01
Лучший ответ Сообщение было отмечено Vladislavv как решение

Решение

Покажите, что 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);
0
1 / 1 / 2
Регистрация: 30.07.2014
Сообщений: 98
30.07.2014, 22:01  [ТС]
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;
    }
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2014, 22:04
Цитата Сообщение от Vladislavv Посмотреть сообщение
char ('s') попытка вернуть в char значения s
Нет, тут просто m присваивается значение 's'.
0
1 / 1 / 2
Регистрация: 30.07.2014
Сообщений: 98
30.07.2014, 22:04  [ТС]
alsav22 спасибо, помогло
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
31.07.2014, 20:35
Символ в одинаковых кавычках - это всего лишь альтернативная форма записи чисел. Т.е. следующие два кода эквивалентны:

C
int x = '0';
C
int x = 48;
'0' - это всего лишь удобная форма записи числа 48 (а точнее, величины (char)48)
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
31.07.2014, 22:10
Evg, может быть с точки получения итогового значения в x код и является эквивалентным для ASCII кодировки. Однако не стоит забывать, что в С++ '0' имеет тип char, и занимает 1 байт, а в Си это по сути int, с вытекающим отсюда размером.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
31.07.2014, 22:12
Tulosba, да, в очередной я упустил из виду различие в Си и Си++. Т.е. мою последнюю фразу надо переписать как

'0' - это всего лишь удобная форма записи числа 48, которая в Си эквивалентна (char)48, а в Си++ - (int)48
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
31.07.2014, 22:36
Цитата Сообщение от Evg Посмотреть сообщение
а в Си++ - (int)48
Не совсем так. '0' в плюсах это char, никакого int'а тут нет. преобразование в int появляется только, если всё это сохранить в int'овую же переменную. Т.е. упомянутый int x.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
31.07.2014, 23:20
Цитата Сообщение от 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;
}
Code
$ gcc t.c
$ ./a.out
int
 
$ mv t.c t.cc
$ g++ t.cc
$ ./a.out
char
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.07.2014, 23:20
Помогаю со студенческими работами здесь

Ввести число x, выяснить что больше : целая часть числа x или его дробная часть умноженная на 10
Ввести число x, выяснить что больше : целая часть числа x или его дробная часть умноженная на 10. Если первое то число разделить на 10 ...

Ввести число x, выяснить что больше: целая часть числа x, или его дробная часть, умноженная на 10
Ввести число x, выяснить что больше: целая часть числа x, или его дробная часть, умноженная на 10. Если первое, то число разделить на 10,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru