Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Aymurat
111 / 105 / 62
Регистрация: 07.11.2014
Сообщений: 734
Завершенные тесты: 6
#1

Строка: создать string массив из 20 фамилии. - C++

16.11.2015, 17:33. Просмотров 559. Ответов 7
Метки нет (Все метки)

Подскажите, как работает string? Мне нужно создать string массив из 20 фамилии. Думал что-то вроде этого:
C++
1
2
std::string fam[1000];
fam[1000]={"Ivanov", "Alekdansrov","Sidorov","Pavlov","Durachenko","Morozenko","Alekseev","Poroshenko","Lukashenko","Shaychenko","Coi","Ovcharov","Magazov","Kireev","Pugachev","Viktorov","Lobanov","Nagiev","Dmitriev","Sergeev"};
Но выскакивает ошибка... Конечно и должна быть. Посмотрел пару примеров, оказывается то, что я написал 1000 - это кол-во символов. Как будет правильно?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2015, 17:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Строка: создать string массив из 20 фамилии. (C++):

Создать массив структур; убрать фамилии абонентов, адреса которых изменились
Ребят, прошу, помогите дорешать задачу. Суть задачи: Создать массив структур...

Как создать динамический массив типа string? Как создать класс такого массива?
Как создать динамический массив типа string? Как создать класс такого массива? ...

Создать двумерный динамический массив типа String
Мне нужно создать динамический массив типа string с заранее неизвестной...

Создать динамическую струтуру-массив с типом string и int
Здравствуйте. Учу C++ по книге Прата и делаю его задачи. И тут попалась вот...

Как создать и заполнить динамический массив строк типа std::string?
Как создать и заполнить динамический массив строк типа string? Если заполнять...

7
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
16.11.2015, 17:43 #2
Aymurat,
C++
1
std::string fam[] = {"Ivanov", "Alekdansrov","Sidorov","Pavlov","Durachenko","Morozenko","Alekseev","Poroshenko","Lukashenko","Shaychenko","Coi","Ovcharov","Magazov","Kireev","Pugachev","Viktorov","Lobanov","Nagiev","Dmitriev","Sergeev"};
Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Aymurat Посмотреть сообщение
"Alekdansrov"

1
Aymurat
111 / 105 / 62
Регистрация: 07.11.2014
Сообщений: 734
Завершенные тесты: 6
16.11.2015, 17:44  [ТС] #3
А как теперь ее вызывать как массив? Например, printf("Ocenki u4enika %s",fam[i]")?
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
16.11.2015, 17:45 #4
Aymurat, ага
1
Aymurat
111 / 105 / 62
Регистрация: 07.11.2014
Сообщений: 734
Завершенные тесты: 6
16.11.2015, 17:52  [ТС] #5
[Error] cannot pass objects of non-trivially-copyable type 'std::string {aka class std::basic_string<char>}' through '...'

Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <string>
int main()
{
    const int n=20;
    const int j=12;
    int ocenki[n-1][j-1];
    std::string fam[] = {"Ivanov", "Aleksandrov","Sidorov","Pavlov","Durachenko","Morozenko","Alekseev","Poroshenko","Lukashenko","Shaychenko","Coi","Ovcharov","Magazov","Kireev","Pugachev","Viktorov","Lobanov","Nagiev","Dmitriev","Sergeev"};
    double sred[n-1];
    int summ=0;
    int i,p;
    for (i=0; i<=n-1; i++)
    {
    for (p=0; p<=j-1; p++)
    {
        printf("Vvedite %i ocenku dlya %s: ",i+1, fam[i]); scanf("%i",ocenki[i][p]);
    }
    }
    for (i=0; i<=n-1; i++)
    {
        for (p=0; p<=j-1; p++)
        {
            summ+=ocenki[i][p];
        }
        sred[i]=summ/j;
    }
    
}
Это не вся версия, дальше еще нужно будет написать. И т.д., думаю пригодится код, чтобы узнать, почему ошибка.
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
16.11.2015, 17:53 #6
Цитата Сообщение от Aymurat Посмотреть сообщение
C++
1
printf("Ocenki u4enika %s",fam[i])
отставить printf и scanf, они не умеют понимать крестовые строки, для вывода std::cout используй, для ввода же std::cin или std::getline(std::cin, строка).
1
Aymurat
111 / 105 / 62
Регистрация: 07.11.2014
Сообщений: 734
Завершенные тесты: 6
16.11.2015, 18:14  [ТС] #7
К сожалению, нужно писать на C

Добавлено через 20 минут
Есть варианты для C? Аналогичные?
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
16.11.2015, 18:46 #8
Лучший ответ Сообщение было отмечено Aymurat как решение

Решение

Aymurat,
C++
1
char fam[][30] = {"Ivanov", "Aleksandrov","Sidorov","Pavlov","Durachenko","Morozenko","Alekseev","Poroshenko","Lukashenko","Shaychenko","Coi","Ovcharov","Magazov","Kireev","Pugachev","Viktorov","Lobanov","Nagiev","Dmitriev","Sergeev"};
1
16.11.2015, 18:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2015, 18:46
Привет! Вот еще темы с решениями:

Строка string и строка char
Ребят помогиме. В общем задание такое дана строка типа string и строка char...

строка с ипользыванием string
Дано предложение. Напечатать все его слова, отличные от слова привет. Решить...

Неправильно инициализируется строка String
Добрый день, уважаемые форумчане! Прошу вашей помощи в следующем вопросе:...

Содержит ли строка (string) подстроку
Есть ли для этого встроенные методы, или надо писать свой костыль?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru