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

Даны две строки, содержащие не более 100 символо - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблоны классов http://www.cyberforum.ru/cpp-beginners/thread415770.html
реализовал стек. хочу вставить шаблон. не получается. не компиллирует да и вообще куча ошибок. как эта штука работает? #include <iostream> #include <conio.h> using namespace std; //typedef int T; template <class T> class stack_elem {
C++ Транспонировать матрицу Помогите с заданием: "Транспонировать матрицу и вывести на экран элементы главной диагонали и диагонали, располагающейся под главной". http://www.cyberforum.ru/cpp-beginners/thread415750.html
C++ решение задачи,конвертация числа в строку.
дана строка символов,состоящая из произвольных десятичных цифр,разделенных пробелами.вывести на экран числа этой строки в порядке возрастания их значений. вот код: #include <iostream.h> #include <string.h> #include <stdio.h> #include <stdlib.h>
обьясните программу по строчкам(многомерный массив) C++
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10. Найти сумму модулей элементов, расположенных выше главной диагонали. #include <iostream> #include <time.h> #include <conio.h> #define N 10 using namespace std; int main() { int a,k=0,x=0;
C++ форматированный ввод http://www.cyberforum.ru/cpp-beginners/thread415681.html
Есть строка вида: поле1\t поле2\tполе3\tполе4\n Обрабатываю её так: sscanf(Line, "%\t%\t%\t%\n", &str1, &str2, &str3, &str4); Всё нормально, если поля не пустые, иначе поля смещаются. Как правильно указать формат?
C++ условие задачи Ввести массив вещественных чисел. Найти и вывести номер элемента, для которого сумма разностей с соседними элементами максимальна. Для крайних элементов использовать циклическое замыкание. как вот это понять ? Для крайних элементов использовать циклическое замыкание. подробнее

Показать сообщение отдельно
sniperni
1 / 1 / 1
Регистрация: 28.11.2011
Сообщений: 49

Даны две строки, содержащие не более 100 символо - C++

23.12.2011, 20:00. Просмотров 543. Ответов 2
Метки (Все метки)

6. Даны две строки, содержащие не более 100 символов. Строки состоят из слов, разделенных пробелами. Распечатать строку, которая содержит заданное слово заданное количество раз.
Вот код моей программы:
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
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
#include <iostream>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <windows.h>
using namespace std;
int main()
{
    SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 char str1[101], str2[101], str3[20], slova[101][20], slova2[51][20];
        int z,k=0,i,j=0,v,kv=0;// j - номер очередного слова
    cout<<"Введите первую строку на латинской алфавите,состоящую из слов,разделённых пробелами (не более 100 символов):\n";
    gets(str1);
    cout<<"Введите вторую строку на латинской алфавите,состоящую из слов,разделённых пробелами (не более 100 символов):\n";
    gets(str2);
    cout<<"Введите искомое слово на латинской алфавите:\n";
    gets(str3);
    cout<<"Введите кол-во раз, которое введённое вами слово должно встречаться в строке:";
    cin>>z;
    for(i=0; i<strlen(str1);i++)
        if(str1[i]==' ')
        {
            strncpy(slova[j],str1+k,i-k);
            slova[j][i-k]=0;
        i++;
        k=i;
        j++;
        }
        strncpy(slova[j],str1+k,i-k);
            slova[j][i-k]=0;
            for(i=0;i<strlen(slova[j]);i++)
            {
            if(strcmp(slova[i],str3)==0);
            kv++;
            }
            if(z==kv)
            {
                cout<<"1-я строка содержит введённое слово заданное кол-во раз!\n";
                puts(str1);
            }
            else
                cout<<"1-я строка не содержит введённое слово заданное кол-во раз!\n";
            kv=0;
            k=0;
            j=0;
            for(i=0; i<strlen(str2);i++)
                if(str2[i]==' ')
                    {
                        strncpy(slova2[j],str2+k,i-k);
                        slova2[j][i-k]=0;
                        i++;
                        k=i;
                        j++;
                    }
                    strncpy(slova2[j],str2+k,i-k);
                    slova2[j][i-k]=0;
                    for(i=0;i<strlen(slova2[j]);i++)
                    {
                        if(strcmp(slova2[i],str3)==0); 
                            kv++;
                    }
                    if(z==kv)
                    {
                        cout<<"2-я строка содержит введённое слово заданное кол-во раз!\n";
                        puts(str2);
                    }
                    else
                        cout<<"2-я строка не содержит введённое слово заданное кол-во раз!\n";
                    getch();
}
Так вот.... почему-то переменную 'kv' прога плюсует больше раз,чем встречается введённое слово.... да и в массиве слов - после терминатора почему-то стоят строки из букв "М"(это я вижу,когда ставлю точки останова и просматриваю значения переменных)... и в вводимом слове - то же самое!!! Парни, помогите, пожалуйста.... может кто подскажет - в чём моя ошибка и поможет исправить её??? ПЛИЗ!!!!

Добавлено через 1 минуту
если я использую вместо функции strcmp функцию strstr - ничего не меняется в итоге.... прога так же работает неверно!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru