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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
#1

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

21.09.2009, 11:09. Просмотров 1779. Ответов 15

в общем задача такая
пользователь вводит ФИО, затем номер телефона в строковый массив
сколько угодно раз до нажатия определенного символа (допустим 0-exit)
затем предлагается найти по номеру ФИО или наоборот с помощью строковых функций...

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

Указатели и массивы. Указатели и функции - C++
Никак не разберусь с указателями на функцию. Пишу в Visual Studio. Надо написать функцию Compress() с использованием указателей, которая...

Указатели на массивы. Указатели и функции - C++
Вот задача: Даны два массива : А и B. Необходимо создать третий массив, в котором нужно собрать: -Элементы обоих массивов; -Общие...

Распечатать таблицы значений функций cox (x) и на отрезке [a; b] с шагом h, развив функции в ряд Тейлора и используя указатели на функции - C++
Распечатать таблицы значений функций cox (x) и на отрезке с шагом h, развив функции в ряд Тейлора и используя указатели на функции.

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Шаблонные функции и указатели на функции - C++
Помогите доделать и исправить... Задание: 1. Создать структуру Прямоугольник, с полями Высота и Ширина. Создать массив объектов типа...

Указатели и функции - C++
Доброго времени суток. Прошу помощи у пользователей данного форума) Значит стоит такая вот задача: В командной строке задаются...

15
kostarev
1 / 1 / 0
Регистрация: 15.07.2009
Сообщений: 25
21.09.2009, 11:28 #2
Тебе поможет динамический массив и записи
Читай книги объектно ориентированное-программирование
0
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
21.09.2009, 11:31 #3
kostarev, можно обойтись и без ООП, просто объявить
C++
1
2
3
4
5
struct User
{
    char FIO[90];
    int NPhone;
};
и с ней работать. Создать массив таких структур и все
0
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
21.09.2009, 11:45  [ТС] #4
Цитата Сообщение от M128K145 Посмотреть сообщение
kostarev, можно обойтись и без ООП, просто объявить
C++
1
2
3
4
5
struct User
{
    char FIO[90];
    int NPhone;
};
и с ней работать. Создать массив таких структур и все
вся загвоздка что структуры мы еще не проходили и соответственно не могу решить используя данную конструкцию...
хотя класс struct значительно облегчил бы жизнь в данном случае.
0
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
21.09.2009, 12:24 #5
А что вы проходили? стандарные контейнеры были? ИМХО, STL - просто, легко и надёжно.
0
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
21.09.2009, 12:33  [ТС] #6
Цитата Сообщение от TanT Посмотреть сообщение
А что вы проходили? стандарные контейнеры были? ИМХО, STL - просто, легко и надёжно.
к сожалению нет
были указатели, функции, массивы, циклы (в обратном порядке ) вот сейчас начались строки и строковые функции и в связи с этим задали такую задачку
указатели и массивы динамические я пропустил в силу определенных обстоятельств
и теперь без них, хоть убей, не могу понять с чего начать
как выделить динамический массив и загонять туда данные =\
а ДЗ сдавать через 5-6 часов...
0
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
21.09.2009, 12:49 #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;
}
1
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
21.09.2009, 14:17  [ТС] #8
Добавлено через 40 минут
вобщем спасибо но множество ф-ций мы еще не проходили например fgets ((
0
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
21.09.2009, 14:22 #9
указатели и массивы динамические я пропустил в силу определенных обстоятельств
Эт ты конечно зря, самое оптимально, по-моему, использовать здесь список. Примеров много в нете. но что-то мне подсказывает, что вы их тоже не проходили
0
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
21.09.2009, 14:35  [ТС] #10
ладно...
попробуем по другому
мне нужен динамический двухмерный строковый массив
как выделить ему память не могу разобраться
C++
1
char *data = new char [];
это для одномерного как я понимаю...
а для двухменого как ?
0
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
21.09.2009, 15:49 #11
C++
1
2
3
char **pArray = new char *[maxlen];
 
 pArray[i] = new char[];
1
electromind
0 / 0 / 0
Регистрация: 11.06.2009
Сообщений: 55
21.09.2009, 16:29  [ТС] #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;
    }
}
на первой итерации могу ввести номер телефона
на второй программа пролетает и останавливается на выборе вводить дальше или нет =\
0
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
21.09.2009, 19:12 #13
electromind, ты в одну строку должен вводить телефон и ФИО
0
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
21.09.2009, 19:23 #14
electromind, в конце цикла поставь cin.ignore(), в потоке остается ненужный символ новой строки.
1
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
21.09.2009, 19:51 #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();
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2009, 19:51
Привет! Вот еще темы с ответами:

Указатели на функции - C++
Изучаю указатели на функции. Написал учебную программку, которая выдает время года по номеру месяца. Но возникает ошибка - не могу...

указатели и функции в с++ - C++
Как сделать так, чтобы функция возвращала указатель на какой-либо элемент этой функции, а сам исходный элемент в mainе оставался...

Функции и указатели - C++
Второй нубский вопрос за день. До сегодняшнего дня вполне успешно пользовался STL-овскими стрингами, сейчас наткнулся в книге Страуструпа...

Указатели на функции - C++
Помогите написать определения(или объявления) функций которые соответсвуют типам указателей. С первой я разобрался, а вот со следую щими...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
21.09.2009, 19:51
Ответ Создать тему
Опции темы

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