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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2012, 10:48   #1
Gtnz8
Пользователь
 
Аватар для Gtnz8
 
Регистрация: 09.08.2012
Сообщений: 95
По умолчанию Автор затруднился написать заголовок. :)

Код:

    #include <iostream>

  int main()

    {
       char alphabet [34]; // 33 буквы плюс NULL char letter;
       int index;
       for (letter = 'A', index = 0; letter <= 'Я';
       letter++, index++) alphabet[index] = letter;
       alphabet[index] = NULL;
       cout << "Буквы " << alphabet;
    }
Не подскажите как переписать этот код чтобы она заработал, это из урока об объявлении символьных строк в программах.
Gtnz8 вне форума Ответить с цитированием
Старый 14.08.2012, 11:14   #2
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию

Предлагаю выводить буквы англицкого алфавита, ибо с русскими заглавными вообще беда в кодировке.
Код:
#include <iostream>
using namespace std;
int main()
{
	char alphabet [27]; // 26 букв плюс \0;
	int i;
	char letter = 'a';
	for (i = 0; i < 26; i++)
	{
		alphabet[i] = letter; 
		letter++;
	}
	alphabet[i] = '\0';
	cout << "Letters: ";
	cout << alphabet << endl;
	return 0;
	
	
}
Пол-жизни сидючи, в монитор глядючи...

Последний раз редактировалось Last; 14.08.2012 в 11:50.
Last вне форума Ответить с цитированием
Старый 14.08.2012, 11:46   #3
Gtnz8
Пользователь
 
Аватар для Gtnz8
 
Регистрация: 09.08.2012
Сообщений: 95
По умолчанию

Спасибо Last.
Gtnz8 вне форума Ответить с цитированием
Старый 14.08.2012, 12:48   #4
Gtnz8
Пользователь
 
Аватар для Gtnz8
 
Регистрация: 09.08.2012
Сообщений: 95
По умолчанию

Можно ли строчку alphabit[i] = '\0'; записать просто alphabit[i]; или это будет нарушением синтаксиса?
Gtnz8 вне форума Ответить с цитированием
Старый 14.08.2012, 13:05   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от Gtnz8 Посмотреть сообщение
Можно ли строчку alphabit[i] = '\0'; записать просто alphabit[i]; или это будет нарушением синтаксиса?
Нарушением синтаксиса это не будет, это будет совсем другая строчка и последствия будут весьма плачевными.
waleri вне форума Ответить с цитированием
Старый 14.08.2012, 13:31   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
и последствия будут весьма плачевными
Та ладно всео лишь рандомное кол-во мусора на экране и, возможно, ошика (ошибки) с доступом к памяти.
p51x вне форума Ответить с цитированием
Старый 14.08.2012, 15:02   #7
Gtnz8
Пользователь
 
Аватар для Gtnz8
 
Регистрация: 09.08.2012
Сообщений: 95
По умолчанию

p51x совершенно прав, так и было при компиляции, пару раз писал *ошибка доступа к памяти* но в принципе код работал.
Gtnz8 вне форума Ответить с цитированием
Старый 14.08.2012, 18:59   #8
tuluku
 
Регистрация: 22.03.2012
Сообщений: 7
По умолчанию

Алфавит без символа Ё:

Код:
#include <iostream>
using namespace std;

  int main()

    {
       const int csimb=31;
       int x;
       char alphabet [csimb]; // 32 буквы начиная с 0 и последний NULL
       char ch='А';
       alphabet[0]='А';

       for (int i=1; i<=csimb; ++i){
       alphabet[i]=ch+=1;
       }

       alphabet[32]=NULL;
       cout << "Буквы:" << alphabet;

       cin>>x;

    }
eseninodin@hotmail.com
ICQ 610132883
tuluku вне форума Ответить с цитированием
Старый 14.08.2012, 20:39   #9
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

@tuluku
У вас масив размером в 31 елемент, последний индекс будет 30 а NULL вы прописывате на индекс 32, т.е. в 33 елемент масива
waleri вне форума Ответить с цитированием
Старый 14.08.2012, 20:50   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Да и в форе равенство csimb надо убрать...

У вас же есть csimb - размер массива, зачем магические константы вводить?

П.С. А вот вместо \0 присваивать НУЛЛ не хорошо.
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автор курсовых, дипломных, Украина и СНГ chetko100 Фриланс 2 16.04.2012 03:28
Нужна помощь, автор потерялся... avrelius2 Общие вопросы C/C++ 1 25.09.2009 22:13
Кто автор музыки ??? Noor Свободное общение 0 29.07.2008 11:58