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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
kristina-lonsh
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 61
#1

Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. - C++

18.03.2012, 06:15. Просмотров 1725. Ответов 14
Метки нет (Все метки)

Не решается.. (( бьюсь 2 дня.. Код свой приводить не буду дабы не сбивать многоуважаемых программистов с толку)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2012, 06:15     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку.
Посмотрите здесь:

C++ Строки. Определить минимальное количество первых символов, по которым можно различать слова с заданного текста.
Осуществить сравнение первых n символов двух строк C++
даны три строки. определить можно ли из символов первых двух строк получить третью строку C++
C++ Необходимо определить длину строки, вывести строку, которая состоит из двух символов, чередующиеся длины n
Можно ли строку получить из другой строки путем вычеркивания некоторых символов? C++
Выяснить, можно ли строку st2 получить из строки st1 путем вычеркивания некоторых символов C++
C++ Получить из строк новую строку, содержащюю первые N1 символов строки S1 и последнии N2 символов строки S2
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programina
1913 / 598 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
18.03.2012, 07:35     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #2
Цитата Сообщение от kristina-lonsh Посмотреть сообщение
Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку.
Можно.
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,432
18.03.2012, 07:48     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #3
programina, s₁ = "abc", s₂ = "def". Как из символов строк s₁ и s₂ получить строку s₃ = "ghi"?

А вообще, постановка задачи неоднозначная. Вот решение в смысле «каждый символ из s₃ встречается либо в s₁, либо в s₂»:
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(int ac, char* av[])
{
    size_t i;
        
    if(ac != 4)
    {
    fprintf(stderr, "Usage: %s STR1 STR2 STR3\n", av[0]);
    exit(2);
    }
 
    for(i = 0; av[3][i] != '\0'; ++i)
    if(strchr(av[1], av[3][i]) == NULL &&
       strchr(av[2], av[3][i]) == NULL)
    {
        puts("No");
        exit(1);
    }
 
    puts("Yes");
    
    exit(0);
}
kristina-lonsh
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 61
18.03.2012, 08:22  [ТС]     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #4
Цитата Сообщение от programina Посмотреть сообщение
Можно.
не совсем умно, конечно.. Ну да ладно, каких только не бывает называется.
programina
1913 / 598 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
18.03.2012, 08:22     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #5
Я сделала 3 из первой, 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
#include <stdio.h>
 
int main()
{
    int i = 0;      // счетчик
    
    char s1[] = "abc";  // первая строка
    char s2[] = "def";  // вторая строка
    char s3[256];       // третья строка    
 
    for ( i = 0; i < 6; i ++ )
    {
        if ( i < 3 )    
        { 
            s3[i] = s1[i];  
        }
        else 
        {   
            s3[i] = s2[i-3];    
        }   
    }
            
    printf( "%s \n", s3 );  // напечатать 3-ю строку
    getchar();
    return 0;
}
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,432
18.03.2012, 08:25     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #6
Цитата Сообщение от programina Посмотреть сообщение
Я сделала 3 из первой, 3 из второй.
третья строка нам уже дана, об этом ясно сказано в условии. Ее не нужно формировать
kristina-lonsh
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 61
18.03.2012, 08:29  [ТС]     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #7
Цитата Сообщение от programina Посмотреть сообщение
Я сделала 3 из первой, 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
#include <stdio.h>
 
int main()
{
    int i = 0;      // счетчик
    
    char s1[] = "abc";  // первая строка
    char s2[] = "def";  // вторая строка
    char s3[256];       // третья строка    
 
    for ( i = 0; i < 6; i ++ )
    {
        if ( i < 3 )    
        { 
            s3[i] = s1[i];  
        }
        else 
        {   
            s3[i] = s2[i-3];    
        }   
    }
            
    printf( "%s \n", s3 );  // напечатать 3-ю строку
    getchar();
    return 0;
}
спасибо. Но задача в том что три строки уже даны!
например: строка_1="abc";
строка_2="lmn";
строка_3="mabaln";
то есть каждая из букв третьей строки есть либо в первой, либо в третьей строке. Если же будет хоть одна буква, не принадлежащая ни одной из двух первых строк, то программа должна выдать сообщение, что "Из символов первых двух строк составить третью строку нельзя!!!"
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,432
18.03.2012, 08:30     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #8
kristina-lonsh, Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку.
kristina-lonsh
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 61
18.03.2012, 08:32  [ТС]     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #9
может, я чего то не совсем понимаю, но зачем мне ссылка на МОЙ ЖЕ ВОПРОС?!?
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,432
18.03.2012, 08:33     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #10
Цитата Сообщение от kristina-lonsh Посмотреть сообщение
может, я чего то не совсем понимаю, но зачем мне ссылка на МОЙ ЖЕ ВОПРОС?!?
там ссылка на мое решение (т.е. ссылка на пост #3)
kristina-lonsh
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 61
18.03.2012, 08:38  [ТС]     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #11
Цитата Сообщение от Nameless One Посмотреть сообщение
там ссылка на мое решение (т.е. ссылка на пост #3)
спасибо. Я видела, но окно с результатом я даже не успеваю увидеть)) Добавила конце system("PAUSE");
но проблема не устранена.. тем более, возможно ввиду скудности моего опыта программирования на С++ я не могу понять где здесь даются строки.. как они задаются?
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,432
18.03.2012, 08:43     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #12
Цитата Сообщение от kristina-lonsh Посмотреть сообщение
тем более, возможно ввиду скудности моего опыта программирования на С++ я не могу понять где здесь даются строки.. как они задаются?
они передаются в качестве параметров программы. Лучше всего программу запускать из консоли (хотя параметры запуска можно настроить и в IDE):

Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку.
kristina-lonsh
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 61
18.03.2012, 08:51  [ТС]     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #13
Цитата Сообщение от Nameless One Посмотреть сообщение
они передаются в качестве параметров программы. Лучше всего программу запускать из консоли:

Вложение 135287
ааа, Nameless One, а можно попроще? меня как бы сразу выгонят с пары - сразу видно что скатала откуда то=)))) Мы такого не проходили и не будем)) мы только основы, а потом на Java переходим. Блин, я чувствую истина где-то рядом.... но пока у меня остановилось примерно на этом (программа у меня видоизменяется со скоростью ветра=)) ):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdlib.h>
#include<iostream>
#include<string.h>
using namespace std;
int main()
{char str1[]="abcdi";
char str2[]="xzv";
char *stroka3="cdivz";
strcat(str1,str2);
char *stroka1=str1;
int length;
cout<<"Stroka 1= "<<endl;
cout<<"Stroka 3= "<<endl;
length=strcspn(stroka1,stroka3);
if (length) cout<<"YES"<endl;
else cout<<"NO"<<endl;
system("PAUSE");
}
как пользоваться редактором формул не очень понятно))) у меня все мысли о программе сейчас))
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,432
18.03.2012, 09:09     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #14
Цитата Сообщение от kristina-lonsh Посмотреть сообщение
ааа, Nameless One, а можно попроще? меня как бы сразу выгонят с пары - сразу видно что скатала откуда то=)))) Мы такого не проходили и не будем)) мы только основы, а потом на Java переходим
это и есть основы

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
#include <iostream>
#include <cstdlib>
#include <cstring>
 
int main()
{
    char str1[256] = "abcdi";
    const char* str2 = "xzv";
    const char* str3 = "cdivz";
    
    strcat(str1, str2);
 
    std::cout << str1 << std::endl;
    std::cout << str3 << std::endl;
    
    while(*str3)
    if(strchr(str1, *str3++) == NULL)
    {
        std::cout << "No" << std::endl;
        system("pause");
        return 1;
    }
 
    std::cout << "Yes" << std::endl;
    
    system("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2012, 09:13     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
kristina-lonsh
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 61
18.03.2012, 09:13  [ТС]     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку. #15
Цитата Сообщение от Nameless One Посмотреть сообщение
это и есть основы

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
#include <iostream>
#include <cstdlib>
#include <cstring>
 
int main()
{
    char str1[256] = "abcdi";
    const char* str2 = "xzv";
    const char* str3 = "cdivz";
    
    strcat(str1, str2);
 
    std::cout << str1 << std::endl;
    std::cout << str3 << std::endl;
    
    while(*str3)
    if(strchr(str1, *str3++) == NULL)
    {
        std::cout << "No" << std::endl;
        system("pause");
        return 1;
    }
 
    std::cout << "Yes" << std::endl;
    
    system("pause");
}
ой, спасибо....... работает.... блин, как мне тебя отблагодарить???... Спасибо-спасибо-спасибо!!!!... вот она истина... к вечеру я бы до нее дошла, а может быть и нет=))
Yandex
Объявления
18.03.2012, 09:13     Даны три строки. Определить, можно ли из символов первых двух строк получить третью строку.
Ответ Создать тему
Опции темы

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