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

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

Войти
Регистрация
Восстановить пароль
 
yura332
0 / 0 / 0
Регистрация: 21.09.2009
Сообщений: 25
#1

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

29.06.2010, 09:33. Просмотров 455. Ответов 8
Метки нет (Все метки)

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

Из символов введенной строки сформировать две строки - из цифр и букв - C++
Здраствуйте, помогите пожалуйста с задачей, надо из символов введенной строки сформировать две строки - из цифр и букв

Если строки одинаковы, объединить две строки, исключив из второй первые десять символов - C++
Ввести строки. Сравнить первые десять символов двух строк. Если они одинаковы, объединить две строки, исключив из второй первые десять...

Даны две строки символов S1 и S2 - C++
Будьте добры, как осуществить программу по такому вот запросу?Если можно, с комментариями пожалуйста Даны две строки символов S1 и S2....

Даны две строки длиной до 80 символов - C++
Даны две строки длиной до 80 символов. Необходимо: Удалить заданный символ в каждой строке. Описать в виде отдельной функции удаление...

Даны две строки, содержащие не более 100 символов. - C++
Строки состоят из слов, разделенных пробелами. Распечатать все слова из каждой строки, начинающиеся и заканчивающие-ся на заданную...

Ввести две строки символов A и B. Создать строку С следующим образом С1 = A1, C2 = В1, С3 = А2, С4 = В2 - C++
Ввести две строки символов A и B. Создать строку С следующим образом С1 = A1, C2 = В1, С3 = А2, С4 = В2 То есть,если A=1234 B=5678,то ...

8
mamedovvms
2918 / 839 / 93
Регистрация: 30.04.2009
Сообщений: 2,633
29.06.2010, 09:54 #2
что значит печатает дольше всего общее слово??? слово что ли должно быть самым длинным или что???
0
mih
6 / 6 / 1
Регистрация: 10.05.2010
Сообщений: 56
29.06.2010, 11:31 #3
все же понятно, эта функция которая печатает общее слово дооольше чем все остальные слова )
0
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 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);
}
0
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
0
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);
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
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;
}
0
mih
6 / 6 / 1
Регистрация: 10.05.2010
Сообщений: 56
30.06.2010, 18:09 #8
да, но моя программа более соответствует условию, так как она выводит общее слово ДОЛЬШЕ всего
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
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;
}
0
30.06.2010, 18:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2010, 18:21
Привет! Вот еще темы с ответами:

Даны две строки символов. Выбросите из них все общие элементы - C++
Даны две строки символов. Выбросите из них все общие элементы. (4) c++

Даны две строки, сформировать третью из символов, которые встречаются более двух раз - C++
Добрый день, помогите с задачей пожалуйста:) Даны две строки, сформировать третью из символов , которые встречаются более двух раз. ...

Заданы две строки одинаковой длины. Построить новую строку, состоящую из символов как одной, так и другой - C++
помогите пожайлуста. Заданы две строки одинаковой длины. Построить новую строку, состоящую из символов как одной, так и другой строки,...

Получить из строк новую строку, содержащюю первые N1 символов строки S1 и последнии N2 символов строки S2 - C++
помогите написать программу на двух разных классах! 2) Даны целые положительные числа N1 и N2 и строки S1 и S2. Получить из этих строк...


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

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

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