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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Mensh
0 / 0 / 0
Регистрация: 02.11.2008
Сообщений: 10
#1

Задача на строки - C++

04.11.2008, 14:32. Просмотров 1634. Ответов 5
Метки нет (Все метки)

Задали на лабу в универе задачу:

Словом в строке считается последовательность букв латинского алфавита, остальные символы рассматриваются как разделители между словами. Слова в каждой из двух исходных строк упорядочены по алфавиту. Необходимо сформировать новую строку из всех слов исходных строк. Слова в новой строке должны быть также упорядочены по алфавиту. Прописные и строчные буквы в словах не различать. Слова в новой строке должны разделяться ровно одним пробелом.

Не знаю с какой стороны подступиться, точнее скорее не знаю как это всё в коде написать.

Помогите пожалуйста, очень нужно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2008, 14:32     Задача на строки
Посмотрите здесь:

C++ Задача на строки
C++ задача на Строки
C++ Задача, строки, с++
задача на строки C++
C++ Задача на строки !
C++ задача на строки
C++ Задача на строки
C++ Задача на строки(С/С++)
Задача на строки C++
C++ Задача на строки
Задача на строки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Inlight
43 / 42 / 2
Регистрация: 17.09.2008
Сообщений: 98
05.11.2008, 12:32     Задача на строки #2
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
#include <iostream>
#include <conio.h> // для _getch()
#include <string>
#include <vector>
#include <algorithm>
 
using namespace std;
 
    string first = "aaa ccc eee";
    string second = "bbb ddd fff";
    vector<string> s;
 
vector<string> split(const string &s, const char *by = " \t\r\n") {
    vector<string> res;
    int i, j;
    int n = s.size();
    for (i = 0; i <= n; i = j + 1) {
        for (j = i; j < n && strchr(by, s[j]) == NULL;) j++;
        res.push_back(s.substr(i, j-i));
    }
    return res;
}
int main()
{
    cout << "First string: " << first << endl;
    cout << "Second string: " << second << endl;
    s = split(first+" "+second);
    sort(s.begin(),s.end());
    first = "";
    for (int i=0; i<s.size(); i++) {
        first += s[i]+" ";
    }
    cout << "Final string: " << first << endl;
    _getch();
    return 0;
}
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,327
05.11.2008, 13:53     Задача на строки #3
Mensh, только имей в виду, что приведенный Inlight код тебе необходимо модифицировать, иначе он будет работать не по условию задачи.

Вот test case, на котором он "сломается" (не удовлетворяет условию задачи):

string first = "aaa ccc eee";
string second = "123bbb БББddd бю!fff бю,./";
Inlight
43 / 42 / 2
Регистрация: 17.09.2008
Сообщений: 98
05.11.2008, 14:01     Задача на строки #4
Это чтобы не расслаблялся - пусть хотя бы найдёт сам, куда кидать разделители слов
Mensh
0 / 0 / 0
Регистрация: 02.11.2008
Сообщений: 10
06.11.2008, 01:10  [ТС]     Задача на строки #5
Inlight, CheshireCat, огромное спасибо, пытаюсь сейчас во всём этом разобраться. НО есть одно но, мне надо всё это реализовать только charom, без string, это возможно?
Inlight
43 / 42 / 2
Регистрация: 17.09.2008
Сообщений: 98
06.11.2008, 11:01     Задача на строки #6
НО есть одно но, мне надо всё это реализовать только charom, без string, это возможно?
Возможно Заменяешь string на char и исправляешь ошибки: oператор + придётся заменить на strcat, size на strlen, аналога substr я не знаю, наверное, придётся самому написать... Ну и так ещё чего-нибудь, по мелочи придётся поменять..
Yandex
Объявления
06.11.2008, 11:01     Задача на строки
Ответ Создать тему
Опции темы

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