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

Идентификаторы списка в качестве аргументов функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Из текста выбрать числа и записать в массив http://www.cyberforum.ru/cpp-beginners/thread897804.html
Из текста выбрать числа и записать в массив. Предполагается, что количество встречающихся чисел не более 10.
C++ Строки, нужно подправить код Есть задание : Из заданной последовательности слов удалить слова, содержащие числа. и я написал данный код: Код: #include <iostream> #include <list> #include <string> http://www.cyberforum.ru/cpp-beginners/thread897799.html
C++ Неправильный рандом
Здравствуйте. Программа должна заполнять массив случайными, не повторяющимися элементами. Однако не смотря на то что максимальное значение случайных элементов было задано 50, массив заполняется любыми числами, в том числе и очень большими. Как это исправить? int a,i,j,b; bool flag; for(i=0;i<20;i++) { flag=false; b=rand()%50; for (j=0;j<=i;j++) {...
C++ Класс Sentence и сортировка строки по алфавиту
#include <stdio.h> #include <conio.h> #include <string.h> #include <iostream.h> class Sentence { public: char *str; Sentence(char *p); char* sort();
C++ Рекурсия. Составьте программу, которая для заданных значений n и m, определит номер оставшегося в кругу человека http://www.cyberforum.ru/cpp-beginners/thread897740.html
Пусть n человек встали в круг и получили номера от 1 до n по часовой стрелке. Затем, начиная с первого, по часовой стрелке отсчитывается m человек. Этот m–й человек выходит из круга, после чего, начиная со следующего, снова отсчитывается m–й человек. Так продолжается до тех пор, пока не останется один человек. Составьте программу, которая для заданных значений n и m, определит номер оставшегося...
C++ Turbo C++ где можно скачать турбо си? подробнее

Показать сообщение отдельно
Jazzis
1 / 1 / 0
Регистрация: 27.05.2013
Сообщений: 15
13.06.2013, 09:56  [ТС]     Идентификаторы списка в качестве аргументов функции
Переделал я функцию, теперь в нее передается только само поле. Выглядит так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void search (char* db)
{
    char i[150];
    cout << "Enter a string for search: ";
    cin >> i;
    struct List *curr;
    curr = head;
    while  (curr != NULL)
    {
        cout << "db == " << db << endl;
        if (strcmp(db, i)==0)
        {
            printf("%d %s\n",curr->person.data,db);
        }
        curr = curr->next;
    }
}
Но я не могу понять как правильно ей передать поле, по которому надо искать. Если делаю db как struct List, то ругается на то, что не может конвертировать char в List*. Если делаю char* как сейчас, то db всегда равен последнему элементу списка, а попытка указать db, где первый элемент приводит к ошибке (ругается что db типа char*, а head типа List*).
Передаю такой вот аргумент:
C++
1
search(db->person.fio);
Т.к. структуры у меня объявлены таким образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct Person {
    int data;
    int id;
    char* fio;
    int age;
    char* prof;
    char* party;
    int number;
    bool sud;
};
 
struct List 
{
    Person person; 
    struct List *next; 
} *head = NULL;
 
Текущее время: 01:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru