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

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

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

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

26.10.2011, 23:41. Просмотров 952. Ответов 4
Метки нет (Все метки)

Например, если заданы слова «процессор» и «информация», то ответом должно быть: «р о ц»
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2011, 23:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос в C++ Даны два слова.Вывести все общие буквы этих слов по одному разу. (C++):

Вывести все слова встречающиеся в последовательности по одному разу - C++
Дан текст, содержащий от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв; между соседними словами – запятая, за...

Вывести два предложения и распечатать самые длинные слова, общие для этих предложений - C++
Здравствуйте. Мне необходима помощь (консультация) на счёт задачи: Вывести два предложения и распечатать самые длинные слова,...

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

Дан массив из строчных латинских букв. Вывести на экран в алфавитном порядке все буквы, которые входят в этот текст по одному разу - C++
Дан массив из строчных латинских букв. Вывести на экран в алфавитном порядке все буквы, которые входят в этот текст по одному разу. ...

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

Даны три слова.Напечатать их общие буквы (из паскаля в с++) - C++
program q; var s1,s2,s3:string; m1,m2,m3,m4:set of char; l1,l2,l3,i1,i2,i3:integer; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
27.10.2011, 00:18 #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
#include <iostream>
#include <string>
 
int main()
{
    std::string word1, word2;
    std::cout << "Input two words:\n";
    std::cin >> word1 >> word2;
 
    int lengthWord1 = word1.size();
    int lengthWord2 = word2.size();
    bool process = false;
    for( int i = 0; i < lengthWord1; ++i )
    {
        process = true;
        for( int j = 0; j < i; ++ j )
            if( word1[ i ] == word1[ j ] )
                process = false;
        if( process )
            for( int k = 0; k < lengthWord2; ++k )
                if( word1[ i ] == word2[ k ] )
                    std::cout << word1[ i ] << ' ';
    }
 
    std::cout << std::endl;
    system( "pause" );
    return 0;
}
Добавлено через 3 минуты
Пояснения:
Каждый символ первого слова ищем во втором слове, однако надо сперва проверить, не встречался ли такой символ раньше. Для этого нужен код в строках 15-18. В этих строчках ищем текущий( i-ый) символ начиная с начала первого слова до( но не включая) это( i-того ) символа.
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
27.10.2011, 00:39 #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
#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
#include <set>
  
int main() 
{
   std::string s;
 
   std::cout << "input 1st word: ";
   std::cin >> s;
   std::set<char> set1(s.begin(), s.end());
   
   std::cout << "input 2nd word: ";
   std::cin >> s;   
   std::set<char> set2(s.begin(), s.end());
 
   std::string result;
   std::set_intersection(set1.begin(), set1.end(),
             set2.begin(), set2.end(),
             std::back_inserter(result));
   
   std::cout << result << '\n';
   
   return 0;
}
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
27.10.2011, 11:17 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <string.h>
 
char* share_chs(char* dst, const char* str1, const char* str2) {
  char* tmp = dst;
  const char* ptr;
  while( *str1 ) {
         if((ptr = strchr(str2, *str1)) != NULL) {
                 if(strchr(tmp, *ptr) == NULL)
                      *dst++ = *ptr;
         }
        *str1++;
   }
  *dst = '\0';
  return tmp;
}
 
int main(void) {
 char buf[16];
 puts( share_chs(buf, "BIOS", "BLOCKS") );
 getchar();
 return 0;
}
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
27.10.2011, 12:04 #5
Ещё вариант на C
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 <stdio.h>
#include <string.h>
 
#define N 50
 
int main()
{
   char s1[N];
   char s2[N];
   char buf[N] = {'\0'};
   char* ps1 = s1;
   char* pbuf = buf;
 
   printf("input 1st word: ");
   scanf("%s%*c", s1);   
   
   printf("input 2nd word: ");
   scanf("%s", s2);   
   
   while( (ps1 = strpbrk(ps1, s2)) )
   {
      if(!strchr(buf, *ps1))
     *pbuf++ = *ps1;
 
      ++ps1;
   }
 
   printf("result: %s\n", buf);
 
   return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2011, 12:04
Привет! Вот еще темы с ответами:

Вывести на экран слова начинающиеся с той же буквы, что и первое слово предложения. Напечатать строку после изъятия этих слов. - C++
Помогите, пожалуйста с программой: Вывести на экран слова начинающиеся с той же буквы, что и первое слово введенного предложения....

Напечатать в алфавитном порядке все буквы, которые входят в текст по одному разу - C++
Необходимо решить следующее : Задача 1. Дан произвольный текст. Напечатать в алфавитном порядке все буквы, которые входят в этот текст по...

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

Напечатать все слова, которые встречаются в строке по одному разу - C++
Задание такое. Дана строка, напечатать все слова, которые встречаются в ней по одному разу. Код моей программы #include&lt;iostream&gt; ...


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

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

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