Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 53
1

Поиск строкового массива в файле

29.10.2015, 19:12. Показов 532. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, мне нужно создать программу которая будет открывать файл с данными записанными построчно, искать нужную строку по 1-му слову, после чего нужно указать следующую строку которую оно так же найдет и сравнит их на наличие одинаковых слов, в итоге выведет эти строки и общие слова в массивах. Таких операций должно быть от 2 до 5, по выбору пользователя. Пользователь должен задавать название массива который нужно найти. Количество массивов в файле может достигать 200, а количество слов в каждом массиве от 1 до 50.

Добавлено через 1 час 9 минут
Ап, помогите пожалуйста...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2015, 19:12
Ответы с готовыми решениями:

Как сделать элемент строкового массива элементом числового массива?
Помогите, пожалуйста! :cry: Как поменять элемент строкового массива так, чтобы он стал элементом...

Проверка строкового массива
Добрый день, помогите, пожалуйста, разораться с проверкой условия: Имеем текстовый файл,...

Проверка на 0 и 1 для строкового массива
Написал такую функцию для проверки строкового массива на бинарность bool checkBinary(string...

Вывод строкового массива на экран
Доброго времени суток Такая проблема,я хочу вывести какой-то результат , например "Hello",но пишет...

8
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
29.10.2015, 19:12 2
Byz9, Сами что-нибудь сделали уже?
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 53
29.10.2015, 19:16  [ТС] 3
Только "сравнит их на наличие одинаковых слов, в итоге выведет эти строки и общие слова в массивах."
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
29.10.2015, 19:17 4
Byz9, Ну так кидайте код.
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 53
29.10.2015, 19:18  [ТС] 5
makfak, но я не уверен, что это подходит для данной задачи...
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
#include <iostream>
#include <string>
 
using namespace std;
 
void compare(string * a, int an, string aName, string * b, int bn, string bName)
{
    for (int i(0); i < an; ++i)
        for (int j(0); j < bn; ++j)
            if (a[i] == b[j])
                cout << "В массивах " << aName << " и " << bName << " совпадает слово " << a[i] << "." << endl;
}
 
void show(string * a, int an, string aName)
{
    cout << "Массив " << aName << " содержит слова: " << a[0];
    for (int i(1); i < an; ++i) cout << ", " << a[i];
    cout << "." << endl;
}
 
int main()
{
    setlocale(LC_ALL, "RUS");
    const int n(3);
 
    string    names[n] = { "один", "два", "три" };
    int        sizes[n] = { 3, 2, 1};
    
    string    words[n] = { "кошка", "ложка", "ножка" };
 
    string ** wordsArrays = new string *[n];
 
    for (int i(0); i < n; ++i)
    {
        wordsArrays[i] = new string[sizes[i]];
        for (int j(0); j < sizes[i]; ++j)
            wordsArrays[i][j] = words[j];
    }
 
    for (int i(0); i < n; ++i)
        show(wordsArrays[i], sizes[i], names[i]);
    
    for (int i(0); i < n; ++i)
        for (int j(i + 1); j < n; ++j)
            compare(wordsArrays[i], sizes[i], names[i],
                    wordsArrays[j], sizes[j], names[j]);
 
    for (int i(0); i < n; ++i)
        delete [] wordsArrays[i];
    delete [] wordsArrays;
    system("pause");
    return 0;
}
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
29.10.2015, 19:56 6
Byz9, Откуда же такое задание? Даже не знаю, как его решить. Может кто-то поопытней подскажет, а я, увы. Простите. Могу разве что организовать поиск первых слов в файле.
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 53
29.10.2015, 20:13  [ТС] 7
makfak, буду благодарен
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
29.10.2015, 20:29 8
Byz9,
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
void FindWord( string );
 
int main() {
    FindWord( "a.txt" );
}
 
void FindWord( string NameFile ) {
    ifstream file( NameFile );
    string str = "";
    string str2 = "";
    string find = "";
    int j = 0;
    string cpy[];
    getline( file, str );
    for( int i = 0; i < str.length(); i++ ) {
        str2 += str[i];
        if( str[i+1] == ' ' ) {
            find = str2;
            break;
        }
    }
    while( !file.eof() ) {
        str2 = "";
        getline( file, str );
        for( int i = 0; i < str.length(); i++ ) {
            str2 += str[i];
            if( str[i+1] == ' ' && str2 == find ) {
                cpy[j] = str;
                j++;
                break;
            }
        }
    }
}
Вот этот код ищет 1-е слово 1-й строки файла, дальше додумайте сами, просто уже ни сил, ни времени нету на это. Простите.
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 53
01.11.2015, 15:31  [ТС] 9
Ап, может кто-то еще знает как решить данную задачу?
0
01.11.2015, 15:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2015, 15:31
Помогаю со студенческими работами здесь

Узнать длину строкового массива
char s1; cout &lt;&lt; strlen(s1) &lt;&lt; endl; // Выдаёт 62 вместо 26| Как узнать char s2;// ...

Как удалить цифры из строкового массива
Есть задача: Написать функцию char* superSort (char*) принимающую строку слов, разделенных...

Эстетичный метод ликвидации строкового массива
Если если необходимость ликвидации строкового массива я делаю так: for( ix = 0; text != '\0'; ++ix...

Заполнение строкового массива кодами символов
Как сделать, чтобы не было предупреждений? warning C4309: инициализация: усечение константного...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru