Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 390
от 28.10.2003, 09:50

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 1196
Отправлено ответов: 2719
Активность: 227.3 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

BOLT
Статус: Профессиональный
Общий рейтинг: 171.28
URL: Начинающему программитсу: софт, примеры, документация, Assembler, C & C++.
Телефон: Три раза АУ!
[Подробней >>]
Yuri Gordienko
Статус: Профессиональный
Общий рейтинг: 119.59
URL: Досконально о С++, оптимизация программ, советы
[Подробней >>]
chebv
Статус: Начальный
Общий рейтинг: 114.58
[Подробней >>]
 
RedFox
Статус: Опытный
Общий рейтинг: 102.6
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.03
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1185. Здрасте. Есть такая задача: Задать массив строк и передать его в самостоятельно созданную функцию,... (ответов: 5)
Вопрос № 1186. Здравствуйте. Почему в следующей программе не выводится на терминал строка s, хотя компилятор ее рас... (ответов: 2)

Вопросов: 2, ответов: 7


 Вопрос № 1185

Здрасте. Есть такая задача:
Задать массив строк и передать его в самостоятельно
созданную функцию, выводящую его на экран.
Че та не получается!!!
Может я что то с указателями намудил ?


Приложение:


Вопрос отправлен: 24.10.2003, 17:45
Отправитель: Egor78

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Добрый день, Egor78!
Наверно у меня получилось не красиво, но зато работает:
#include <iostream.h>
typedef char * t_month;
void out_str(char **str)
{
for (int number = 0; number < 12; number++)
{
char *s = str[number];
while (*s)
{
cout << *s;
*s++;
}
cout <<
"";
}
}
void main ()
{
t_month months[12] = {
"Jen", "Feb", "Mat", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Des"};
out_str(months);
int end;
cin >> end;
//чтобы консоль не закрылась
}

Snoop Dogg:
Still Snoop Dogg and D-R-E (Guess who's back)
Still, still doing that shit, right?

This message was created by EMan 1.5


Ответ отправлен: 25.10.2003, 13:34
Отправитель: BOLT


Отвечает Yuri Gordienko

Здравствуйте, Egor78!
Замени:
char *s = str+number;
на:
char *s = str[number];
Перевод строки делай так:
std::cout << ' ';
Успехов

Ответ отправлен: 24.10.2003, 18:23
Отправитель: Yuri Gordienko


Отвечает chebv

Добрый день, Egor78!
В примере достаточно изменить лишь одну строку:
//char *s = str+number;
char *s = str[number];
либо
char *s = *(str+number);
Тогда все работает.
Конструкция str+number возвращает указатель на указатель, поэтому и возникает ошибка при преобразовании char** к char*.


Ответ отправлен: 25.10.2003, 13:23
Отправитель: chebv


Отвечает RedFox

Приветствую Вас, Egor78!
измени в строке char *s = str+number;
на char *s = *(str+number);
т.е. str - это массив указателей на char*, в твоем варианте это массив char.


Ответ отправлен: 24.10.2003, 18:41
Отправитель: RedFox


Отвечает vitya

Приветствую Вас, Egor78!
предлагаю просто решение:

Приложение:

Ответ отправлен: 25.10.2003, 10:37
Отправитель: vitya


 Вопрос № 1186

Здравствуйте.
Почему в следующей программе не выводится на терминал строка s, хотя компилятор ее распознает?
Компилятор Borland C++ 5.02


Приложение:


Вопрос отправлен: 24.10.2003, 18:03
Отправитель: Charodey

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Приветствую Вас, Charodey!
Не знаю, но у меня все работает. Проверял на BCB 6.0.

Snoop Dogg:
Still Snoop Dogg and D-R-E (Guess who's back)
Still, still doing that shit, right?

This message was created by EMan 1.5


Ответ отправлен: 25.10.2003, 13:34
Отправитель: BOLT


Отвечает Yuri Gordienko

Доброе время суток, Charodey!
Все выводится. Проследи за логикой работы программы.
Успехов

Приложение:

Ответ отправлен: 24.10.2003, 18:28
Отправитель: Yuri Gordienko



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (32)
C / C++ (27)
Perl (4)
Builder / Delphi (23)
Pascal (21)
Basic / VBA (6)
Java / JavaScript (6)
PHP (11)
Криптография (7)
WinAPI (12)
Пользователю
Windows 95/98/Me (48)
Windows NT/2000/XP (65)
"Железо" (38)
Поиск информации (29)
Администратору
Windows NT/2000/XP (38)
Linux / Unix (13)
Юристу
Гражданское право (9)
Семейное право (6)
Трудовое право (6)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное