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

Составить функцию, определяющую тождественность двух данных строк - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
q7
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 38
08.02.2010, 15:36     Составить функцию, определяющую тождественность двух данных строк #1
Практическая работа №8
ТЕМА: «Работа со строками в С++»
Цель: изучить работу по обработке текстовых строк в С++.
Тип урока: практическая работа.
Количество часов: 4.
Необходимое программное обеспечение: Visual Studio 6 Ent, MS Word.
Необходимые сведения из теории:
символьные строки в С++;
строка как параметр функции;
Упражнения:

Задание 1. Составить программу подсчета количества цифр в данной строке.

Задание 2. Составить программу, которая по данной символьной строке формирует числовой массив, содержащий коды символов, составляющих строку.

Задание 3. Составить функцию, определяющую тождественность двух данных строк.

Задание 4. Составить программу, удаляющую в данной строке каждый символ с четным номером.

Задание 5. Составить функцию конкатенации (слияния) двух строк. В основной программе использовать эту функцию для слияния четырех строк.

Задание 6. Составить функцию, переводящую десятичное целое число, представленное в символьном виде, в соответствующую величину целого типа.

Задание 7. Составить функцию, переводящую десятичное вещественное число, представленное в символьном виде, в соответствующую величину плавающего типа.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2010, 15:36     Составить функцию, определяющую тождественность двух данных строк
Посмотрите здесь:

Написать функцию, определяющую в каком из двух массивов больше отрицательных элементов C++
C++ Составить функцию, которая для двух натуральных чисел
C++ Написать функцию, определяющую НОД(наибольший общий делитель) двух целых чисел
C++ Дополнительно перегрузить логическую операторную функцию для операции | (побитовая дизъюнкция), определяющую параллельность двух отрезков
Строка: Добавить в строковый класс функцию, которая создает строку, содержащую пересечение двух строк, то есть общие символы для двух строк. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
08.02.2010, 16:13     Составить функцию, определяющую тождественность двух данных строк #2
1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cctype>
using namespace std;
 
int main(){
    char str[256], *p;
    int cnt = 0;
    
    cout << "String: ";
    cin.get(str, 256);
    for ( p = str; *p; ++p )
        if ( isdigit(*p) )
            ++cnt;
    cout << "Found " << cnt << " digits" << endl;
    
    return 0;
}
q7
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 38
08.02.2010, 17:23  [ТС]     Составить функцию, определяющую тождественность двух данных строк #3
первую сделайте пожалуйста
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
09.02.2010, 01:07     Составить функцию, определяющую тождественность двух данных строк #4
2.
C
1
2
3
4
5
char *str = "some text";
int i, len = strlen(str);
int* code = new int[len];
for(i = 0; i < len; ++i)
    code[i] = (int)str[i];
Добавлено через 4 минуты
3.
C
1
2
3
4
5
6
7
8
9
10
bool Equals(char* str1, char* str2)
{
    int i, len1 = strlen(str1), len2 = strlen(str2);
    if(len1 != len2)
        return false;
    for(i = 0; i <= len1>>1; ++i)
        if(str1[i] != str2[i] || str1[len1 - 1 - i] != str2[len2 - 1 -i])
            return false;
    return true;
}
Добавлено через 5 минут
4.
C
1
2
3
4
5
6
7
char* str = "some text";
int i, j, len = strlen(str);
for(i = len - 1; i >= 0; --i)
    if(!(i & 1))
        for(j = i; j < len - 1; ++i)
            str[i] = str[i + 1];
str[len>>1 + 1] = '\0';
Добавлено через 13 минут
5.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
char* concat(char* str1, char* str2)
{
    int i, j, len1 = strlen(str1), len2 = strlen(str2);
    char* rez = new char[len1 + len2 - 1];
    for(i = 0; i < len1; ++i)
        rez[i] = str1[i];
    for(i = len1; i < len1 + len2; ++i)
        rez[i] = str2[i - len1];
    return rez;
}
int main()
{
    char str1[] = "this ";
    char str2[] = "some";
    char str3[] = " text";
    char str4[] = "?!";
    char* str = concat(str1, concat(str2, concat(str3, str4)));
    cout<<str;
    return 0;
}
Добавлено через 10 минут
6.
C
1
2
3
4
5
6
7
int AToI(char* number)
{
    int i, ch = 0, len = strlen(number);
    for(i = 0; i < len ; ++i)
        ch += (int)pow(10.0, (double)(len - i - 1)) * ((int)number[i] - 48);
    return ch;
}
Faberge
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 30
20.03.2010, 16:16     Составить функцию, определяющую тождественность двух данных строк #5
А можно еще на 7 решение?
Я так понял что изначально там будет тип int, а перевод осуществляться будет во float?
Yandex
Объявления
20.03.2010, 16:16     Составить функцию, определяющую тождественность двух данных строк
Ответ Создать тему
Опции темы

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