Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2010, 20:27   #1
siemdi
Пользователь
 
Регистрация: 15.01.2010
Сообщений: 50
По умолчанию странность массива

вот программа для замены символов
все работает правильно, но только если я ввожу одно число, а если я ввожу два числа через пробел то под замену символов попадает только первое число... пиплс помогите, а?

PHP код:
char a[2048];
int main()
{
system("chcp 1251");
cin>>a;
for(
int i=0;i<2048;i++)
{
 
if(
a[i]=='1')
{
cout<<"00001 ";}
if(
a[i]=='2')
{
cout<<"00010 ";}
if(
a[i]=='3')
{
cout<<"00100 ";}
if(
a[i]=='4')
{
cout<<"01000 ";}
if(
a[i]=='5')
{
cout<<"10000 ";}
if(
a[i]=='6')
{
cout<<"10001 ";}
if(
a[i]=='7')
{
cout<<"10010 ";}
if(
a[i]=='8')
{
cout<<"10100 ";}
if(
a[i]=='9')
{
cout<<"11000 ";}
if(
a[i]=='0')
{
cout<<"11001 ";}
 
}

siemdi вне форума Ответить с цитированием
Старый 09.09.2010, 20:35   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

С разделителем будет лучше смотреться:
Код:
char a[2048]; 
int main() 
{ 
system("chcp 1251"); 
cin>>a; 
for(int i=0;i<2048;i++) 
{ 
  
if(a[i]=='1') 
{cout<<"00001 ";} 
else if(a[i]=='2') 
{cout<<"00010 ";} 
else if(a[i]=='3') 
{cout<<"00100 ";} 
else if(a[i]=='4') 
{cout<<"01000 ";} 
else if(a[i]=='5') 
{cout<<"10000 ";} 
else if(a[i]=='6') 
{cout<<"10001 ";} 
else if(a[i]=='7') 
{cout<<"10010 ";} 
else if(a[i]=='8') 
{cout<<"10100 ";} 
else if(a[i]=='9') 
{cout<<"11000 ";} 
else if(a[i]=='0') 
{cout<<"11001 ";} 
else
{cout<<"   ";}
  
} 
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."

Последний раз редактировалось Syuf; 09.09.2010 в 20:46.
Syuf вне форума Ответить с цитированием
Старый 09.09.2010, 20:35   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Вместо
Код:
cin >> a;
используйте
Код:
char a[2048];
cin.getline(a, 2048);
или
Код:
using namespace std;
string s;
getline(cin, s);
в зависимости от типа строки (в стиле Си - массив символов, или стандартная std::string)
operator>> считывает из cin одно слово до первого пробела.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 10.09.2010, 00:16   #4
siemdi
Пользователь
 
Регистрация: 15.01.2010
Сообщений: 50
По умолчанию

спасибО)))
siemdi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странность с рекурсией Morkonwen Общие вопросы C/C++ 5 22.08.2010 21:48
Странность в Exel avermedia Microsoft Office Excel 5 19.04.2010 13:36
Странность с пользовательской функцией motorway Microsoft Office Excel 10 24.02.2010 01:36
Странность в условии k1r1ch Общие вопросы Delphi 18 03.11.2009 12:43
Странность POST-запроса Voody Работа с сетью в Delphi 4 21.07.2009 20:39