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

Cтроковые функции и указатели - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
21.09.2009, 11:09     Cтроковые функции и указатели #1
в общем задача такая
пользователь вводит ФИО, затем номер телефона в строковый массив
сколько угодно раз до нажатия определенного символа (допустим 0-exit)
затем предлагается найти по номеру ФИО или наоборот с помощью строковых функций...

пропустил 4 занятия в т.ч. и тему с указателями
не могу понять как правильно вводить данные в массив (как создавать и т.д.)
выборку из массива я сам сделаю...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2009, 11:09     Cтроковые функции и указатели
Посмотрите здесь:

C++ Указатели на функции
Функции и указатели C++
C++ Функции и указатели
указатели на функции C++
Указатели на функции C++
указатели и функции в с++ C++
C++ Указатели и функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kostarev
 Аватар для kostarev
1 / 1 / 0
Регистрация: 15.07.2009
Сообщений: 25
21.09.2009, 11:28     Cтроковые функции и указатели #2
Тебе поможет динамический массив и записи
Читай книги объектно ориентированное-программирование
M128K145
Эксперт C++
 Аватар для M128K145
8276 / 3495 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
21.09.2009, 11:31     Cтроковые функции и указатели #3
kostarev, можно обойтись и без ООП, просто объявить
C++
1
2
3
4
5
struct User
{
    char FIO[90];
    int NPhone;
};
и с ней работать. Создать массив таких структур и все
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
21.09.2009, 11:45  [ТС]     Cтроковые функции и указатели #4
Цитата Сообщение от M128K145 Посмотреть сообщение
kostarev, можно обойтись и без ООП, просто объявить
C++
1
2
3
4
5
struct User
{
    char FIO[90];
    int NPhone;
};
и с ней работать. Создать массив таких структур и все
вся загвоздка что структуры мы еще не проходили и соответственно не могу решить используя данную конструкцию...
хотя класс struct значительно облегчил бы жизнь в данном случае.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
21.09.2009, 12:24     Cтроковые функции и указатели #5
А что вы проходили? стандарные контейнеры были? ИМХО, STL - просто, легко и надёжно.
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
21.09.2009, 12:33  [ТС]     Cтроковые функции и указатели #6
Цитата Сообщение от TanT Посмотреть сообщение
А что вы проходили? стандарные контейнеры были? ИМХО, STL - просто, легко и надёжно.
к сожалению нет
были указатели, функции, массивы, циклы (в обратном порядке ) вот сейчас начались строки и строковые функции и в связи с этим задали такую задачку
указатели и массивы динамические я пропустил в силу определенных обстоятельств
и теперь без них, хоть убей, не могу понять с чего начать
как выделить динамический массив и загонять туда данные =\
а ДЗ сдавать через 5-6 часов...
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
21.09.2009, 12:49     Cтроковые функции и указатели #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
#include <stdio.h>
#include <string.h>
#define MAXDATA 3
#define MAXLEN 256
 
int main(void)
{
    int i, ndata;
    char data[MAXDATA][MAXLEN], strfind[MAXLEN], *p;
 
    printf("Введите ФИО и номер телефона:\n");
    for(i = 0; i < MAXDATA; i++)
        if(fgets(data[i], MAXLEN, stdin) == NULL)
            break;
    ndata = i;
 
    printf("Что ищем? ");
    scanf("%s", strfind);
    for(i = 0; i < ndata; i++)
        if( (p = strstr(data[i], strfind)) != NULL)
            printf("Найдено: %s", data[i]);
    return 0;
}
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
21.09.2009, 14:17  [ТС]     Cтроковые функции и указатели #8
Добавлено через 40 минут
вобщем спасибо но множество ф-ций мы еще не проходили например fgets ((
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
21.09.2009, 14:22     Cтроковые функции и указатели #9
указатели и массивы динамические я пропустил в силу определенных обстоятельств
Эт ты конечно зря, самое оптимально, по-моему, использовать здесь список. Примеров много в нете. но что-то мне подсказывает, что вы их тоже не проходили
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
21.09.2009, 14:35  [ТС]     Cтроковые функции и указатели #10
ладно...
попробуем по другому
мне нужен динамический двухмерный строковый массив
как выделить ему память не могу разобраться
C++
1
char *data = new char [];
это для одномерного как я понимаю...
а для двухменого как ?
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
21.09.2009, 15:49     Cтроковые функции и указатели #11
C++
1
2
3
char **pArray = new char *[maxlen];
 
 pArray[i] = new char[];
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
21.09.2009, 16:29  [ТС]     Cтроковые функции и указатели #12
проблема ...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
void main()
{
    const int maxlen=256; 
    char **pArray = new char *[maxlen];
    char end;
    for (int i=0;i<maxlen;i++)
    {
        pArray[i] = new char[];
        cout<<"\nVvedite nomer F.I.O. i nomer telefona: ";
        gets(pArray[i]);
        cout<<"\nProdolzhaem vvod? (Y/N)";
        cin>>end;
        if (end=='n'||end=='N')
            break;
    }
}
на первой итерации могу ввести номер телефона
на второй программа пролетает и останавливается на выборе вводить дальше или нет =\
M128K145
Эксперт C++
 Аватар для M128K145
8276 / 3495 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
21.09.2009, 19:12     Cтроковые функции и указатели #13
electromind, ты в одну строку должен вводить телефон и ФИО
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
21.09.2009, 19:23     Cтроковые функции и указатели #14
electromind, в конце цикла поставь cin.ignore(), в потоке остается ненужный символ новой строки.
M128K145
Эксперт C++
 Аватар для M128K145
8276 / 3495 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
21.09.2009, 19:51     Cтроковые функции и указатели #15
gets - это вроде не плюсовая функция. Если полностью на С++, то
так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void main()
{
    const int maxlen=256; 
    char pArray[maxlen][90];
    char end;
    for (int i=0;i<maxlen;i++)
    {
        cout<<"\nVvedite nomer F.I.O. i nomer telefona: ";
        cin.getline(pArray[i], 90);
        cout<<"\nProdolzhaem vvod? (Y/N)";
        cin>>end;
        if (end=='n'||end=='N')
            break;
        cin.ignore();
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2009, 11:09     Cтроковые функции и указатели
Еще ссылки по теме:

C++ Указатели Функции
Указатели и функции C++
Указатели на функции C++
Указатели на функции C++
Указатели на функции C++

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

Или воспользуйтесь поиском по форуму:
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
22.09.2009, 11:09  [ТС]     Cтроковые функции и указатели #16
всем спасибо за помощь
проскакивает из-за того, когда вводится имя и номер, они разделяются пробелом... а т.к. cin работает до первого пробела и получается такая кака )))
еще раз благодарю всех за участие в обсуждении, тему можно закрывать.
Yandex
Объявления
22.09.2009, 11:09     Cтроковые функции и указатели
Ответ Создать тему

Метки
Строки
Опции темы

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