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

Добавить в строковый класс функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсия, квадратные корни. http://www.cyberforum.ru/cpp-beginners/thread143808.html
Здравствуйте, очень нужна помощь с задачей на рекурсию "Написать рекурсивную функцию и её нерекурсивный аналог, произвести измерение времени работы написанных функций при разных значениях" А...
C++ Циклические алгоритмы. Управление циклами. Организовать процесс угадывания числа: компьютер генерирует случайное число (1…1000), пользователь пытается его угадать за фиксированное число попыток (10). Компьютер должен выводить ответ на каждое... http://www.cyberforum.ru/cpp-beginners/thread143785.html
C++ Граф-карта
Добрый день. Не знаю, люда надо писать или нет. Показалось что сюда. Задача: Дано: список точек и описание с какими точками они соединены в каких направленияю. Требуется нарисовать граф...
люди я на зачёте C++
Ввести три цифры найти среди них минимальную, две оставшиеся через пробел вывести в текстовый файл . я сделал но не вывел в файл помогите пожалуйста #include<iostream.h> #include<stdlib.h>...
C++ где можно бесплатно и без регистрации скачать фильмы на английском с рус. субтитрами http://www.cyberforum.ru/cpp-beginners/thread143742.html
надо для учебы
C++ Циклы и линейные массивы Найдите все трехзначные числа, которые можно представить разностью между квадратом числа, образованного первыми двумя цифрами и квадратом третьей цифры. В линейном целочисленном массиве посчитать... подробнее

Показать сообщение отдельно
Crudelis
Шаровик затейник
674 / 416 / 13
Регистрация: 06.05.2010
Сообщений: 1,109

Добавить в строковый класс функцию - C++

10.06.2010, 16:14. Просмотров 1293. Ответов 6
Метки (Все метки)

Добавить в строковый класс функцию, которая создает строку,
содержащую пересечение двух строк, то есть общие символы для двух строк.
Например, результатом пересечения строк "sdqcg" "rgfas34" будет строка "sg".
Для реализации функции перегрузить оператор * (бинарное умножение).
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
72
73
74
75
#include<iostream>
using namespace std;
class String
{
    char *str1;
    char *str3;
    int len;    
public:
    String(){};
    ~String()
    {
        delete [] str1;
        delete [] str3;
    }
    void Inps1();
    String& operator *(String &N);
    String& operator =(String &N);
    void Showrez();
 
};
void String::Inps1()
{
    char a[256];
    gets(a);
    len=strlen(a)+1;
    str1 = new char[len];
    strcpy(str1,a);
}
String& String:: operator *(String &N)
{
    int tem=1;
    len=strlen(str1)+1;
    N.len=strlen(N.str1)+1;
    for(int i=0;i<len;i++)
    {
        for(int j=0;j<N.len;j++)
        {
            if(str1[i]==N.str1[i])
                tem++;
        }
    }
    str3 = new char[tem];
    for(int i=0;i<len;i++)
    {
        for(int j=0;j<N.len;j++)
        {
            if(str1[i]==N.str1[j])
                strncat(str3,str1[i],1);
        }
    }
    return *this;
}
String& String:: operator =(String &N)
{
    strcpy(str1,N.str1);
    strcpy(str3,N.str3);
    len=N.len;
    return *this;
}
void String::Showrez()
{
    cout<<"Результат умножения двух строк: "<<str3<<endl;
}
void main()
{
    setlocale(LC_CTYPE,"Rus");
    String A,B,C;
    cout<<"Введите первую строку\n";
    A.Inps1();
    cout<<"Введите вторую строку\n";
    B.Inps1();
    C=A*B;
    C.Showrez();
    cout<<endl;
}
Что за ошибка, помогите пожалуйста:
error C2664: strncat: невозможно преобразовать параметр 2 из 'char' в 'const char *'
Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
Если прописать strncat(str3,&str1[i],1); то ошибок нет, но вот работа программы:
ввожу 1ю строку, ввожу 2ю, когда дело доходит до умножения программа виснет и выдает ошибку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru