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

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

Войти
Регистрация
Восстановить пароль
 
Jleloush
1 / 1 / 1
Регистрация: 16.01.2010
Сообщений: 26
#1

строки - C++

23.05.2010, 23:17. Просмотров 366. Ответов 4
Метки нет (Все метки)

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

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки - C++
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: "Добавить строки, начиная...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней - C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A - C++
"Даны строки A и B. Если в A есть латинские буквы, а в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке и...

Вычислить длину введенной строки и вывести символы строки с четными индексами - C++
Напишите программу, которая требует ввода строки с клавиатуры. Программа вычисляет длину строки и выводит на экран только те символы...

4
Sura
6 / 6 / 0
Регистрация: 23.05.2010
Сообщений: 87
24.05.2010, 00:07 #2
Можно сделать след. образом:
если эти тексты представлены как массивы с словами-элементами, вот так к примеру
C++
1
char* text[5]={"the","a","one","some","any"};
вместо 5 количество слов в тексте и так же представлен другой.
Тогда создать третий массив и поочередно копировать туда слова с этих массивов, в случайной последовательности,использовав ф-цию rand(),
1
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
24.05.2010, 00:45 #3
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//Даны два текста. Составить третий который содержит общие слова для первого и второго. 
#include <iostream>
#include <string>
#include <locale>
#include <set>
#include <sstream>
#include <algorithm>
#include <vector>
 
std::string  get_obsh_slova
    (
        const std::string& txt1,
        const std::string& txt2
    )
{
    typedef std::set<std::string>  T_word_set;
 
    T_word_set          word_set1;    
    std::istringstream  in_potok1(txt1);
    std::string         cur_word;
    while(in_potok1 >> cur_word)
    {
        word_set1.insert(cur_word);    
    }
 
    T_word_set          word_set2;
    std::istringstream  in_potok2(txt2);
    while(in_potok2 >> cur_word)
    {
        word_set2.insert(cur_word);    
    }
 
    typedef std::vector<std::string>  T_words;
    T_words  obsh_words(word_set1.size() + word_set2.size());
 
    T_words::iterator  new_obsh_words_end 
        = std::set_intersection(word_set1.begin(), word_set1.end(),
                                word_set2.begin(), word_set2.end(),
                                obsh_words.begin());
 
    std::ostringstream  res_potok;
    std::copy(obsh_words.begin(), new_obsh_words_end, 
              std::ostream_iterator<std::string>(res_potok, " "));
 
    return  res_potok.str();   
}
 
int main()
{
    std::string  text1; 
    std::string  text2; 
    std::locale::global(std::locale("rus"));
    for(;;)
    {
        std::cout << "Введите 1-й текст на латинице: " << std::endl;
        getline(std::cin, text1);
 
        std::cout << std::endl
                  << "Введите 2-й текст на латинице: " << std::endl;
        getline(std::cin, text2);
 
        std::cout << std::endl
                  << "Общие слова двух текстов: "
                  << std::endl
                  << get_obsh_slova(text1, text2)
                  << std::endl
                  << std::endl
                  << std::endl
                  << std::endl;
    }
    return 0;
}
1
Jleloush
1 / 1 / 1
Регистрация: 16.01.2010
Сообщений: 26
24.05.2010, 01:31  [ТС] #4
сори забыл сказать стрингом нельзя пользоваться
0
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
24.05.2010, 11:22 #5
Завалялась такая программка (без использования стандартных функций). Может, чем попожет
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
 
const int SIZE =80;
 
void form (char*, char*, char*);
char *probel2 (char *in);
char *probel1 (char *in);
char *copyword (char *, char *, int);
int opr (char *a, char *b, int, int);
void ud(char*, char*);
 
void main()
{
    char buf[SIZE],buf2[SIZE], buf3[SIZE]={' '}, outbuf[SIZE]={' '};
 
    while(cout<<"Vvedite 1 stroky: ",
    cin.getline(buf, SIZE),cout<<"Vvedite 2 stroky: ", cin.getline(buf2, SIZE))
    {   
        ud(buf2, buf3);
        form (buf, buf3, outbuf);
        cout<<"Rezultat: "<<outbuf;
        cout<<endl;
    }
}
void form (char *a,char *b, char *out)
{   
    
    char *first=a; 
    char *first2=b;
    char *z=b;
    int k=0;
    *out='\0';
 
    while (*(first=probel1(a)))
    {
        a=probel2(first);
        b=z;
        while (*(first2=probel1(b)))
        {
            b=probel2(first2);
            k=opr(first, first2, a-first, b-first2);
            if (k>0)
                out=copyword(first2,out,a-first);
        }
    }
    cout<<endl;
}
void ud (char *s, char *b)
{
    char *a=s;
    char *p=b, *z=b; 
    int u=0;
 
    a=probel1(s);
    s=probel2(a);
    b=copyword(a,b,s-a);
 
    char *t=b;
    cout<<endl;
 
    while (*(a=probel1(s)))
    {
        s=probel2(a);
        t=z;
        while (*(p=probel1(t)))
        {
            t=probel2(p);
            u=opr(a,p, s-a, t-p);
 
            if(u==0)
                continue;
            else
                break;
        }
        if (u==0)
            b=copyword(a,b,s-a);    
    }
    cout<<endl;
}
int opr (char *t, char *r, int len, int len2)
{
    int k=0;
    if (len!=len2)
        return 0;
    else
    {
         for (int j=0; j<len; j++)
         {
             if (*t++==*r++)
                k=1;
            else 
            {
                k=0;
                break;
            }
         }
    return k;
     }      
}
char *probel1(char *in)
{ 
    while (*in&&(*in==' ')||(*in=='\t'))
        in++;
    return in;
}
char *probel2 (char *in)
{
    while (*in&&*in!=' '&&*in!='\t')
        in++;
    return in;
}
char *copyword (char * from, char *to, int len)
{
    for (int j=0; (j<len)&&(*to++=*from++); j++)
        ;
    
    *to++=' ';
    *to='\0';
 
    return to;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2010, 11:22
Привет! Вот еще темы с ответами:

Найти среднее арифметическое каждой строки матрицы и отсортировать строки по возрастанию - C++
Дана квадратная матрица. Найти среднее арифметическое каждой строки и отсортировать строки по возрастанию этих характеристик

Прибавить ко всем элементам каждой строки максимальное значение этой строки - C++
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив, прибавив ко всем элементам каждой строки максимальное...

Как считать строки из файла, если там больше одной строки? - C++
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько, то при использовании функции fgets ...

Чтение через fscanf_s части строки с пробелом (и запись этой же строки) - C++
нужно записать в файл строку, содержащую через табуляцию int, char, char, char, float, int. Далее необходимо из такой же строки вывести...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
24.05.2010, 11:22
Ответ Создать тему
Опции темы

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