Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поместить в масив char целые числа как чар =) 
:(
    Опции темы
N1ko
Дата 4.7.2008, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Помогите пожалуйста с простенькой программой. Допустим есть масив из 10 символов. Также есть 2 целых числа: a и b. Мне нужно эти 2 числа запихнуть в чаровский массив, но таким образом что бы они не переводились в тип char, а были внесени масив собственно в первоначальном виде. То есть мне нужно преобразовать int в char, но таким образом, что бы их значения визуально остальсь теми же. Например есть символьный массив из 10 чисел. {1,2,3,4,5,6,7,8,9,0} На позицию 5 и 6 элемента нужно вставить числа a и b соответсвенно, что бы получилось {1,2,3,4,5,10,15,8,9,0} 
Вот часть кода. Что нужно добавить, что бы он заработал так как указано выше?
Код

int main()

{
  int i,a,b;
  char mas[10]="";
  for (i=0; i<10;i++)
          {
            mas[i]=i;
          }
  a=10;
  b=15;
  
 
return 0;
}

Есть конечно вариант применить функцию itoa, но мне кажется, что есть более простой путь, хотя я не уверен.
Заранее спасибо.
PM MAIL ICQ   Вверх
mes
Дата 4.7.2008, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(N1ko @  4.7.2008,  00:25 Найти цитируемый пост)
что бы их значения визуально остальсь теми же. 

а не кажется ли вам , что  строка  "10 " занимат два чара и никак в один не поместится 

а в остальном  можно например так : 
Код

char mas[] = {1,2,3,4,5,6,7,8,9,0} ;
mas[4] ='1';
mas[5] ='0';  //10

mas[5] ='1';
mas[6] ='5';  //15



--------------------
PM MAIL WWW   Вверх
mrbrooks
Дата 4.7.2008, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Цитата(mes @ 4.7.2008,  02:06)
Цитата(N1ko @  4.7.2008,  00:25 Найти цитируемый пост)
что бы их значения визуально остальсь теми же. 

а не кажется ли вам , что  строка  "10 " занимат два чара и никак в один не поместится 


Строка да - но не число.

Код

char mas[] = {10,20,30}; // знаковый чар
unsigned char mas1[] = {110,155,20 }; // беззнаковый чар 
int a = mas[0] + mas1[1]; //будет соответственно 165


Добавлено через 1 минуту и 18 секунд
ЗЫ. Да надеюсь разница между signed  и  unsigned понятна.
PM MAIL   Вверх
prolight
Дата 4.7.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



# include <iostream>
using namespace std;

void main()
{
    int x;
    cin>>x;
    char y;
    y=x+'0';
    cout<<y;
}
вот и вся трансформация из int в char 
PM MAIL ICQ   Вверх
bronislav
Дата 4.7.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: 2
Всего: 3



Цитата(mes @  4.7.2008,  01:06 Найти цитируемый пост)
а не кажется ли вам , что  строка  "10 " занимат два чара и никак в один не поместится 


Ну можно сдвинуть часть строки


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
mes
Дата 4.7.2008, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(prolight @  4.7.2008,  14:41 Найти цитируемый пост)
вот и вся трансформация из int в char  

к сожалению или к счастью правильный ответ получится только для первых 10 значений инта 


--------------------
PM MAIL WWW   Вверх
prolight
Дата 4.7.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



Цитата(mes @ 4.7.2008,  15:15)
Цитата(prolight @  4.7.2008,  14:41 Найти цитируемый пост)
вот и вся трансформация из int в char  

к сожалению или к счастью правильный ответ получится только для первых 10 значений инта

тоесть как?первые 10 раз код будет работать а потом нет?)
PM MAIL ICQ   Вверх
mrbrooks
Дата 4.7.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Цитата(prolight @ 4.7.2008,  14:41)
# include <iostream>
using namespace std;

void main()
{
    int x;
    cin>>x;
    char y;
    y=x+'0';
    cout<<y;
}
вот и вся трансформация из int в char

интересно, а что будет если пользователь введет 257?

Будте проще - в один char можно внести от целое -128 до 127;
в один unsigned  char можно внести от целое 0 до 255;

больше (short, int и т.д.)уже со смещением работаем. 


PM MAIL   Вверх
prolight
Дата 4.7.2008, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



вот я тут чуточку пописал,сам вижу что что код тупой(приведённый ниже) но он работает,за исключением того что в оставшихся ячейках мусор.
# include <iostream>
using namespace std;

void main()
{
    int x,i=1,z,n=0;
    
    char q[10];
    cin>>x;
    z=x;
    for(;x!=0;i*=10){
        x/=10;
    }
    i/=10;
    
    for(int s=0;i!=0;i/=10,s++){
    q[s]=z/i+'0';
    z=z-z/i*i;
    n++;
    }
    q[n]='\0';
    cout<<q;
}
оо.включил мосК и убрал мусор.теперь работает без ошибок так как надо

Это сообщение отредактировал(а) prolight - 4.7.2008, 17:01
PM MAIL ICQ   Вверх
JackYF
Дата 4.7.2008, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



prolight, пользуйся кнопкой "Код".


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
prolight
Дата 4.7.2008, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



Цитата(JackYF @ 4.7.2008,  17:00)
prolight, пользуйся кнопкой "Код".

поскольку я не наблюдаю кнопку код я предполагаю что надо иметь ActiveX  чтобы её увидеть,для этого его надо скачать,для,этого надо нормальный интернета не мобильный,для этого надо быть не в Запорожье а в Киеве,для этого надо подождать неделю или я просто не вижу эту кнопку
PM MAIL ICQ   Вверх
mes
Дата 4.7.2008, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(prolight @  4.7.2008,  17:19 Найти цитируемый пост)
поскольку я не наблюдаю кнопку код я предполагаю что надо иметь ActiveX  чтобы её увидеть,для этого его надо скачать,для,этого надо нормальный интернета не мобильный,для этого надо быть не в Запорожье а в Киеве,для этого надо подождать неделю или я просто не вижу эту кнопку

Вы просто не видете эту кнопку:
она находится в верхнем ряду над набираемым текстом  :  "Цвет" "Размер" "Шрифт" "Список" "Код" 


--------------------
PM MAIL WWW   Вверх
prolight
Дата 4.7.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



mes вот зашёл в через оперу и появились все эти кнопки

PM MAIL ICQ   Вверх
mes
Дата 4.7.2008, 21:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(prolight @  4.7.2008,  16:06 Найти цитируемый пост)
тоесть как?первые 10 раз код будет работать а потом нет?) 

работать будет всегда - только результат совсем не тот, что  требуется в теме   smile 
а чтоб предсказать результат, надо ознакомиться с тем, как представлены символы в памяти компа..
подробности можно почитать например здесь : http://ru.wikipedia.org/wiki/ASCII

 smile 
Цитата(prolight @  4.7.2008,  20:27 Найти цитируемый пост)
mes вот зашёл в через оперу и появились все эти кнопки

ну вот и возможность отредактировать все предыдушие сообшения...  smile 




Это сообщение отредактировал(а) mes - 4.7.2008, 21:12


--------------------
PM MAIL WWW   Вверх
NebelDT
Дата 30.9.2008, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 29.9.2008
Где: RU

Репутация: -6
Всего: -10



У меня вот такой примерчик есть)
Код

/*Work Ustinenko Predora*/
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
void main()
{
char X[161],XX[161]="",P[1]="+",L[1]="*",C[2]="IJ",M[1]=" ";
puts("\n\n\n(((VVEDITE SLOVA)))\n\n\n");
int i,j,m,l;
gets(X);j=0;l=0;
m=strlen(X);
for(i=0;i<m;i++){
   if(X[i]==*L){
     XX[l]=*P;
     l++;
}
     XX[l]=X[i];
     l++;
}
puts("\n\n\n(((REZULTAT)))\n\n\n");
for(i=0;i<m;i++){
   if(X[i+1]==C[0]&&X[i+2]==C[1]&&X[i]==M[0]){
     j++;
}}
printf("%s\n",XX);
printf("(((Kolichestvo ras=%d)))",j);
puts("\n\n(((The end)))");
fflush(stdin);
getchar();
getch();
}

    интересно, а что будет если пользователь введет 257?

    Будте проще - в один char можно внести от целое -128 до 127;
    в один unsigned  char можно внести от целое 0 до 255;

Что будет, ERROR)) smile 

PM MAIL WWW YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.