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

Две строки символов - C++

Восстановить пароль Регистрация
 
yura332
0 / 0 / 0
Регистрация: 21.09.2009
Сообщений: 25
29.06.2010, 09:33     Две строки символов #1
Даны две строки символов, которые состоят из слов, между которыми, – пробили. Создать функцию, которая печатает дольше всего общее слово двух строк.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2010, 09:33     Две строки символов
Посмотрите здесь:

Даны две строки, содержащие не более 100 символов. C++
Даны две строки длиной до 80 символов C++
Даны две строки символов. Выбросите из них все общие элементы C++
Ввести две строки символов A и B. Создать строку С следующим образом С1 = A1, C2 = В1, С3 = А2, С4 = В2 C++
C++ Если строки одинаковы, объединить две строки, исключив из второй первые десять символов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mamedovvms
2913 / 834 / 93
Регистрация: 30.04.2009
Сообщений: 2,613
29.06.2010, 09:54     Две строки символов #2
что значит печатает дольше всего общее слово??? слово что ли должно быть самым длинным или что???
mih
6 / 6 / 1
Регистрация: 10.05.2010
Сообщений: 56
29.06.2010, 11:31     Две строки символов #3
все же понятно, эта функция которая печатает общее слово дооольше чем все остальные слова )
Sanu0074
 Аватар для Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,186
Записей в блоге: 5
29.06.2010, 14:00     Две строки символов #4
в задании ничего непонятно, но с того что я понял может нужно так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
void func(char s1[78], char s2[78])
{
    cout<<s1<<s2;
}
int main()
{
    char str1[78];
    char str2[78];
        cout<<">>  ";
        cin>>str1;
        cout<<"\n>>  ";
        cin>>str2;
    func(str1,str2);
}
mih
6 / 6 / 1
Регистрация: 10.05.2010
Сообщений: 56
29.06.2010, 16:27     Две строки символов #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
#include<string.h>
#include<iostream>
#include<windows.h>
using namespace std;
 
void word(char*, char*);
 
void main()
{
    char a[] = "one two three four";
    char b[] = "five one six three";
    
    word(a, b);
}
 
void word(char*a, char*b)
{
    char *ptrt1, *ptr = NULL;
    char*ptrt2 = b;
    ptrt1 = strtok(a, " ");
    while(ptrt1 != NULL)
    {
        ptr = strstr(ptrt2,ptrt1); 
        if(ptr)
        {
            for(int i = 0; i < strlen(ptrt1); i++)
            {
                Sleep(300);
            cout << ptrt1[i] ;
            }
            cout << " ";
        }
        
        ptrt1 = strtok(NULL, " ");
 
    }
}
кстати если вы хотите чтобы функция печатала слова еще дольше - можно увеличить аргумент Sleep
Prividenie
74 / 74 / 6
Регистрация: 05.10.2008
Сообщений: 233
30.06.2010, 13:41     Две строки символов #6
на Си:
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void sl(char *, char *);
 
int main()
{
char *str1 = "sd qwe";
char *str2 = "re gtyh frds dr s";
sl(str1, str2);
return 0;
}
 
void sl(char *str1, char *str2)
{
char *rstroka, *slovo;
int z;
rstroka=malloc(strlen(str1)+strlen(str2)+2);
slovo=malloc(strlen(str1)+strlen(str2)+2);//щоб не показалось мало ;)
strcpy(rstroka, str1);
strcat(rstroka, " ");
strcat(rstroka, str2);
while(1)
{
z = strcspn(rstroka, " ");//длина первого в строке слова
if(strlen(slovo) < z)
    strncpy(slovo, rstroka, z);//копируем
    if(strlen(rstroka) > z)
        strcpy(rstroka, strchr(rstroka, ' ')+1);//обрезаем первое слово и пробел в строке
    else
        break;
}
printf("%s\n",slovo);
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.06.2010, 15:22     Две строки символов #7
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
#include <iostream>
#include <string>
#include <list>
#include <algorithm>
#include <sstream>
#include <iterator>
 
int main(){
    std::string buf;
    std::stringstream ss;
    std::list<std::string> list1, list2;
 
    std::cout << "First string: ";
    std::getline(std::cin, buf);
    ss << buf;
    while ( ss >> buf )
        list1.push_back(buf);
 
    ss.clear();
    std::cout << "Second string: ";
    std::getline(std::cin, buf);
    ss << buf;
    while ( ss >> buf )
        list2.push_back(buf);
 
    for ( std::list<std::string>::const_iterator i = list1.begin(); i != list1.end(); ++i )
        if ( std::find(list2.begin(), list2.end(), *i)  != list2.end() )
            std::cout << *i << std::endl;
 
    return 0;
}
mih
6 / 6 / 1
Регистрация: 10.05.2010
Сообщений: 56
30.06.2010, 18:09     Две строки символов #8
да, но моя программа более соответствует условию, так как она выводит общее слово ДОЛЬШЕ всего
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2010, 18:21     Две строки символов
Еще ссылки по теме:

C++ Получить из строк новую строку, содержащюю первые N1 символов строки S1 и последнии N2 символов строки S2
C++ Даны две строки, сформировать третью из символов, которые встречаются более двух раз
Заданы две строки одинаковой длины. Построить новую строку, состоящую из символов как одной, так и другой C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.06.2010, 18:21     Две строки символов #9
Да, про "дольше всего слово" я как-то упустил
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
#include <iostream>
#include <string>
#include <set>
#include <algorithm>
#include <sstream>
#include <iterator>
#include <functional>
 
struct LenCmp : public std::binary_function<std::string, std::string, bool> {
    bool operator () (const std::string & a, const std::string & b){
        return a.size() > b.size();
    }
};
 
int main(){
    std::string buf;
    std::stringstream ss;
    std::set<std::string, LenCmp> list1, list2;
 
    std::cout << "First string: ";
    std::getline(std::cin, buf);
    ss << buf;
    while ( ss >> buf )
        list1.insert(buf);
 
    ss.clear();
    std::cout << "Second string: ";
    std::getline(std::cin, buf);
    ss << buf;
    while ( ss >> buf )
        list2.insert(buf);
 
    for ( std::set<std::string>::const_iterator i = list1.begin(); i != list1.end(); ++i ){
        if ( std::find(list2.begin(), list2.end(), *i)  != list2.end() ){
            std::cout << *i << std::endl;
            break;
        }
    }
 
    return 0;
}
Yandex
Объявления
30.06.2010, 18:21     Две строки символов
Ответ Создать тему
Опции темы

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