Форум программистов, компьютерный форум CyberForum.ru

Запись строки в массив - C++

Восстановить пароль Регистрация
 
Sanuamba
0 / 0 / 0
Регистрация: 20.09.2013
Сообщений: 10
12.10.2013, 19:48     Запись строки в массив #1
Программой запрашиваются имя, телефон и комментарий:

C++
1
2
3
4
5
6
7
8
9
cout<<"Put full name: ";
cin>>name;
            
cout<<"Put phone number (only 7 numbers!!): ";
cin>>phone;
 
                
cout<<"Put comments: ";
cin>>comments;
После, вся эта информация в виде строки должна укладоваться в каталог:
C++
1
catalog[i]=(name +" "+phone+" "+comments);
но этого не происходит, ошибка: error C2440: =: невозможно преобразовать "char *" в "char". Как иначе поместить информацию в каталог?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
12.10.2013, 19:54     Запись строки в массив #2
И никакой информации о типах...
Для конкатенации строк используйте либо std::stringstream, либо строки хранить как std::string. Я так понимаю, в примере они объявлены как обычные массиввы.
Гром
 Аватар для Гром
199 / 118 / 10
Регистрация: 20.03.2009
Сообщений: 1,075
Записей в блоге: 15
12.10.2013, 19:56     Запись строки в массив #3
Покажите объявление всех этих каталогов, имен и телефонов.
Sanuamba
0 / 0 / 0
Регистрация: 20.09.2013
Сообщений: 10
12.10.2013, 20:29  [ТС]     Запись строки в массив #4
Весь код:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include<iostream>
#include <fstream>
#include <iomanip>
using namespace std;
 
void add_element(char* name, int phone, char* comments)//добавляем эллементы в строку
{
            int j=0;
            int rest=0;
            int i;
            cout<<"Put full name: ";
            cin>>name;
            do
            {
                i=0;
                cout<<"Put phone number (only 7 numbers!!): ";
                cin>>phone;
 
                int phone2=phone;
                while(phone2>0)//считаем колличество цифр в phone
                {
                    phone2/=10;
                    i++;
                }
 
                if(i<7 || i>7)
                {
                    cout<<"Incorrect phone number!"<<endl;
                    j=1;
                }
                else if(i==7)
                {
                    j=2;
                }
            }
            while(j != 2);
            cout<<"Put comments: ";
            cin>>comments;
            cout<<endl;
 
            int checked_out;
            char catalog[50];
            int p=0;
            catalog[p]=(name,phone,comments);
            p++;
            checked_out=1;
            cout<<"Имя: "<<name<<endl;
            cout<<"Телефон: "<<phone<<endl;
            cout<<"Комментарии: "<<comments<<endl;
 
 
}
 
 
int main()
{
    setlocale(LC_ALL, "Russian");//для русского языка
    int phone=0;
    char name[20];
    char comments[50];
    char catalog[50];//сама телефонная книга
 
    int i=0;
    int number=0;
        int numb_row=0;
        int choice=0;
        do
        {
            cout<<"*****Phone Book*****"<<endl;
            cout<<"1) Add New Record"<<endl;
            cout<<"2) Display a Record"<<endl;
            cout<<"3) Display all Records"<<endl;
            cout<<"4) Change the number of the row"<<endl;
            cout<<"5) Exit"<<endl;
            cout<<"Choose your choice : ";
            cin>>choice;
            switch(choice){
            case 1:
                {
                    cout<<"Set information: "<<endl;
                    add_element(name,phone,comments);
                }
                break;
                
                        
        }
            system("pause");
            system("cls");//очистка экрана
    }
        while(choice != 0);
        return 0;
}
Добавлено через 25 минут
Гром,
Гром
 Аватар для Гром
199 / 118 / 10
Регистрация: 20.03.2009
Сообщений: 1,075
Записей в блоге: 15
12.10.2013, 20:45     Запись строки в массив #5
Может, вам структуру использовать?
Если нет, то можно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void DataToString(char* name, int phone, char* comments, char* dest)
 {
 strcpy(dest, name);
 char phoneStr[10];
 itoa(phone, phoneStr, 10);
 strcat(dest, phoneStr);
 strcat(dest, comments);
 }
//...
char dataStr[256];
DataToString(name, phone, comments, dataStr);
strcat(catalog, dataStr);
Sanuamba
0 / 0 / 0
Регистрация: 20.09.2013
Сообщений: 10
13.10.2013, 17:08  [ТС]     Запись строки в массив #6
Гром, Проблема в том что в этом коде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
 
void DataToString(char* name, int phone, char* comments, char* dest)
 {
 strcpy(dest, name);
 char phoneStr[10];
 itoa(phone, phoneStr, 10);
 strcat(dest, phoneStr);
 strcat(dest, comments);
 }
//...
char dataStr[256];
DataToString(name, phone, comments, dataStr);
strcat(catalog, dataStr);
все переменные записываются в одну строку, но без разделения. И данные (имя,телефон,коммент) будут вводиться несколько раз и все они должны сохраняться в разных элементах массива.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2013, 17:24     Запись строки в массив
Еще ссылки по теме:

C++ Ввод и запись строки в массив
Запись строки в файл C++
Запись строки в файл C++

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

Или воспользуйтесь поиском по форуму:
Гром
 Аватар для Гром
199 / 118 / 10
Регистрация: 20.03.2009
Сообщений: 1,075
Записей в блоге: 15
13.10.2013, 17:24     Запись строки в массив #7
Ну да, забыл дописывать между ними разделители. В принципе можно просто
C++
1
sprintf(catalog[i], "Name: %s\tPhone: %d\tComments: %s", name, phone, comments);
и сделать catalog массивом строк:
C++
1
char catalog[10][1024];   //10 строк длиной в 1024 символа; можете динамически выделять память
Yandex
Объявления
13.10.2013, 17:24     Запись строки в массив
Ответ Создать тему
Опции темы

Текущее время: 16:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru