Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
1

Поиск подстроки в символьном массиве

05.06.2013, 10:31. Показов 1711. Ответов 5
Метки нет (Все метки)

подскажите пожалуйста как реализовать поиск подстроки в символьном массиве? есть массив структур, поля которых представляют собой массивы символов, например char Mas[100]. На вход в функцию дается такая же переменная типа char In[100]; и нужное поле в структуре. Необходимо найти найти ее в массиве структур в нужном поле и вернуть значением функции, если не найдено вернуть пустую строку. Подскажите пожалуйста как это можно реализовать? может есть готовые функции которые можно задействовать?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2013, 10:31
Ответы с готовыми решениями:

Поиск числа в символьном массиве
Вводим строку символов, где есть и числа, и буквы, далее из этой строки нужно найти максимальное...

Поиск слова в символьном массиве
Задача: вывести на экран строки, в которых оценка - fine. Пример заполненного массива: ivan-good...

Поиск подстроки внутри данной строки, замена найденной подстроки на другую строку
Выполнить поиск подстроки внутри данной строки,замену найденной подстроки на другую строку Пример...

Поиск подстроки в строке и вывод подстроки
Удалите пожалуйста, разобрался

5
36 / 38 / 7
Регистрация: 01.06.2011
Сообщений: 237
05.06.2013, 10:38 2
идем итератором по символьному массиву и к каждому элементу применяем strcmp
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
05.06.2013, 11:23  [ТС] 3
Цитата Сообщение от dstat Посмотреть сообщение
идем итератором по символьному массиву и к каждому элементу применяем strcmp
шо?

Добавлено через 46 секунд
сделал вот так:
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
int Search(TPhoneBook *PB, int COUNT, char Text[100], int MainField, int SubField)
{
    for (int i = 0; i < COUNT-1; i++)
    switch(MainField)
    {
        case 1: if (PB[i].Family = Text) return i;
        case 2: if (PB[i].Name = Text) return i;
        case 3: if (PB[i].Patronymic = Text) return i;
        case 4: switch(SubField)
                {
                    case 1: if (PB[i].Phone.Home = Text) return i;
                    case 2: if (PB[i].Phone.Work = Text) return i;
                    case 3: if (PB[i].Phone.Mobile = Text) return i;
                }
        case 5: switch(SubField)
                {
                    case 1: if (PB[i].Address.Country = Text) return i;
                    case 2: if (PB[i].Address.City = Text) return i;
                    case 3: if (PB[i].Address.Street = Text) return i;
                    case 4: if (PB[i].Address.N_Home = Text) return i;
                    case 5: if (PB[i].Address.N_Apartment = Text) return i;
                }
        case 6: if (PB[i].Email = Text) return i;
    }
}
только ошибки error C2440: =: невозможно преобразовать 'char []' в 'char [100]'

Добавлено через 2 минуты
вот, если что, структура объявлена так:

PhoneBook.cpp
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
#ifndef PHONEBOOK_H
#define PHONEBOOK_H
#define FileName  "PhoneBook.bin"
 
struct TPhoneBook
{
    char Family[100];
    char Name[100];
    char Patronymic[100];
    struct TPhone
    {
        char Home[100];
        char Work[100];
        char Mobile[100];
    } Phone;
    struct TAddress
    {
        char Country[100];
        char City[100];
        char Street[100];
        char N_Home[100];
        char N_Apartment[100];
    } Address;
    char Email[100];
};
#endif
Добавлено через 29 минут
все допер ! вечно я путаю Си с Делфи тут же равно это ==, а не =, исправил, теперь работает
0
13 / 13 / 5
Регистрация: 06.05.2013
Сообщений: 52
05.06.2013, 12:57 4
Вот так попробуй
C
1
int Search(TPhoneBook *PB, int COUNT, char *Text, int MainField, int SubField)
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
05.06.2013, 13:03  [ТС] 5
Цитата Сообщение от zombiecomatoz Посмотреть сообщение
Вот так попробуй
C
1
int Search(TPhoneBook *PB, int COUNT, char *Text, int MainField, int SubField)
выше читай, проблема уже решена
0
5 / 5 / 0
Регистрация: 27.08.2012
Сообщений: 153
05.06.2013, 13:29 6
Цитата Сообщение от GetHelp Посмотреть сообщение
все допер ! вечно я путаю Си с Делфи тут же равно это ==, а не =, исправил, теперь работает
C
1
2
"="  //Оператор присвоения.
"==" //Оператор сравнения.
Добавлено через 8 минут
Delphi
1
2
":="  //Оператор присвоения.
"=" //Оператор сравнения.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2013, 13:29

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Длина слов в символьном массиве
Доброе Утро! Помогите Пожалуйста написать программу: Дана последовательность символов (возможно...

Преобразование слова в символьном массиве
Доброго времени суток, форумчане! Помогите, пожалуйста, соорудить программу на тему &quot;Символьные...

Удалить запятые в символьном массиве
Объясните пжл символьный массив Помогите пожалуйста удвлить запятые в символьном массиве. Если...

Сосчитать количество строк в символьном массиве
Есть у нас массив указателей(массив строк одномерный).Напр, book, dog, mother,book,...


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

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

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