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

Из первой строчки убрать слова, которые встречаются во второй - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Закомпелировать торрент файт с exe http://www.cyberforum.ru/cpp-beginners/thread1063307.html
Здравствуйте. Может я спрашиваю что то не то или не в том разделе, но мне нужно, сделать файл расширения exe, что при его открытии у пользователя запускался торрент(торрен клиент установленный у него на компьютере) и начинался скачиваться файл. Суть, чтобы на прямую нельзя было добраться до этого торрент файла. Спасибо.
C++ Загрузка данных из БД. Как лучше реализовать работу со связанными данными И так здравствуйте, у меня есть вопрос, как лучше реализовать работу со связанными данными, т.е у нас есть основная структура и более 10 дочерних. struct sProperty { int db; int type; int property } http://www.cyberforum.ru/cpp-beginners/thread1063299.html
C++ Rand() в Win 7 64 bit. Выводится одна и та же последовательность чисел
Постоянно выводит одну и туже последовательность чисел. Что не так? Есть мнение, что под Win 7 64 bit эта команда не работает (rand). Может ли быть в этом причина? Если да, как это обойти? //--------------------------------------------------------------------------- #include <vcl.h> #include <stdio.h> #include <conio.h> #pragma hdrstop
C++ Найти площадь пятиугольника (определить функцию для расчёта площади треугольника по трём сторонам)
даны вещественные числа a.b.c.d.e Найти площадь пятиугольника ,(определить функцию для расчёта площади треугольника по трём сторонам) в задании картинка пятиугольника http://www.cyberforum.ru/attachments/342600d1387131977
C++ Сортировка http://www.cyberforum.ru/cpp-beginners/thread1063245.html
Метод пузырька for (int i = 0; i < 10-1; i++) { if (a>a) { x=a; a=a; a=x; } }
C++ Приложения какой разрядности будут компилироваться в зависимости от ОС, на которой происходит компиляция Купил я, значит, себе ноутбук, и у меня возник вопрос: Если я использую платформу решения x64, то создается приложение, которое идет только на x64? И если я использую x32 - создается x32? Я прав? как правильно? Что эти "платформы решения" дают??:) Да, еще один вопрос : при компиляции мне все время говорит VS "Проект устарел". Что это значит? подробнее

Показать сообщение отдельно
Pakestan228
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 28

Из первой строчки убрать слова, которые встречаются во второй - C++

05.01.2014, 01:22. Просмотров 422. Ответов 5
Метки (Все метки)

Пользователь вводит с клавиатуры 2 строки. Из первой строчки убрать слова, которые встречаются во второй.
Например:

1:user,internet,soft,it
2:computer,test,soft,c++,user

3:internet,it

Вот что вышло:
C++ (Qt)
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
#include "stdafx.h"
#include "string"
#include "iostream"
#include "istream"
#include "stdio.h"
 
 
 
char* slovo(char* str, int count)   //Выбирает слово из строки
{
    int k=1;
char *strs="Error";
char * pch = strtok (str,","); 
 while (pch != NULL)                         
  {
      if(k==count)
          strs=pch;
            
            pch = strtok (NULL, ",");
 
            k++ ;
 }
 return strs;
    }
 
 
int kolvoslov(char stroka[])    //считает кол-во слов в строке
{
int kolvo=0;
 
for (int i=0;i<strlen(stroka);i++)
{
if(stroka[i]==',')
    kolvo++;
}
return kolvo+1;
}
 
 
 
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
 
//str1,2-исходные строки
char str1[256],str11[256]="",str2[256],str21[256]="",str3[256]="",str4[256];
 
//ввод пользователем 2х строк с клавиатуры(слова в строке разделены знаком ",")
printf("Stroka 1:\n");
cin.getline (str1,256);
printf("Stroka 2:\n");
cin.getline (str2,256);
 
int k1=kolvoslov(str1);
int k2=kolvoslov(str2);
for(int i=0;i<strlen(str1);i++)
str11[i]=str1[i];
for(int i=0;i<strlen(str2);i++)
str21[i]=str2[i];
 
 
int p;
for(int i=0;i<k1;i++)
{
    p=0;
    for(int j=0;j<k2;j++)   //если слово из 1 строки не совпадает со словом из 2й строки, p++
    {
        int cmp=_stricmp(slovo(str11,i),slovo(str21,j));
    for(int e=0;e<strlen(str1);e++)
        str11[e]=str1[e];
    for(int e=0;e<strlen(str2);e++)
        str21[e]=str2[e];
    if(cmp!=0)
        p++;
    }
    if(p==k2)
    {strcat(str3,",");
        strcat(str3,slovo(str11,i));
        for(int e=0;e<strlen(str1);e++)
        str11[e]=str1[e];
        }
}
 
int i=0;
while(str3[i]!='\0')    //убираем первую запятую из строки
{
str4[i]=str3[i+1];
i++;
}
 
cout << "Stroka 3:\n"<<str4;
cin.get();
 
cin.ignore();
return 0;
}
в итоге получается не совсем верная строка... в чем может быть ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru