0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 3
1

Создать аналог функции strpbrk на С++

16.10.2013, 13:11. Показов 4947. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, прошу о помощи. Дано задание сделать аналог функции strpbrk на С++, чтобы работало аналогично этой задачи, только сделано другими операторами.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <string.h>
#include <stdio.h>
 
int main( void )
{
   char string[100] = "The 3 men and 2 boys ate 5 pigs\n";
   char *result = NULL;
 
   // Return pointer to first digit in "string".
   printf( "1: %s\n", string );
   result = strpbrk( string, "0123456789" );
   printf( "2: %s\n", result++ );
   result = strpbrk( result, "0123456789" );
   printf( "3: %s\n", result++ );
   result = strpbrk( result, "0123456789" );
   printf( "4: %s\n", result );
}
1: The 3 men and 2 boys ate 5 pigs 2: 3 men and 2 boys ate 5 pigs 3: 2 boys ate 5 pigs 4: 5 pigs - это пример вывода
помимо того чтоб выводило значение в консоли, так выводило значения в файл на диск и программно выводило на печать.
Помогите, просто в програмаче не понимаю, а лабу сдавать надо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2013, 13:11
Ответы с готовыми решениями:

Фильтрация сигнала (создать аналог функции filter на С#)
Привет! Помогите, пожалуйста, создать функцию фильтра, подобную функции MatLabа = filter(b, a, x,...

Принцип работы strpbrk
Изначально я думал, что он возвращает только 1ый символ, но эта функция _string...

Реализовать strpbrk на TASM [ASM].386
Есть программа, которая выводит сообщение, есть ли какой либо из символов второй строки в первой...

Поиск всех вхождений любого символа второй строки в первой (реализация strpbrk)
Заданы две строки. Поиск всех вхождений любого символа второй строки в первой. Реализовала так:...

4
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
16.10.2013, 13:41 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
#include <cstring>
#include <iostream>
 
const char* strpbrk(const char* s1, const char* s2)
{
    std::size_t s1len = std::strlen(s1);
    std::size_t s2len = std::strlen(s2);
    for (int i = 0; i < s1len; i++)
        for (int j = 0; j < s2len; j++)
            if (s1[i] == s2[j])
                return &s1[i];
    return nullptr;
}
 
int main() 
{
    char string[100] = "The 3 men and 2 boys ate 5 pigs\n";
    char *result = nullptr;
    std::cout << "1: " << string << std::endl;
    result = strpbrk(string, "0123456789");
    std::cout << "2: " << (result++) << std::endl;
    result = strpbrk(result, "0123456789");
    std::cout << "3: " << (result++) << std::endl;
    result = strpbrk(result, "0123456789");
    std::cout << "4: " << result << std::endl;
    return 0;
}
0
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 3
16.10.2013, 17:28  [ТС] 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 <cstring>
#include <iostream>
 
const char* strpbrk(const char* s1, const char* s2)
{
    std::size_t s1len = std::strlen(s1);
    std::size_t s2len = std::strlen(s2);
    for (int i = 0; i < s1len; i++)
        for (int j = 0; j < s2len; j++)
            if (s1[i] == s2[j])
                return &s1[i];
    return nullptr;
}
 
int main() 
{
    char string[100] = "The 3 men and 2 boys ate 5 pigs\n";
    char *result = nullptr;
    std::cout << "1: " << string << std::endl;
    result = strpbrk(string, "0123456789");
    std::cout << "2: " << (result++) << std::endl;
    result = strpbrk(result, "0123456789");
    std::cout << "3: " << (result++) << std::endl;
    result = strpbrk(result, "0123456789");
    std::cout << "4: " << result << std::endl;
    return 0;
}
Петр, проблема в том чтобы вообще уйти от использования функции strpbrk, нужно полностью сделать свою функцию с такими же действиями
0
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
16.10.2013, 18:19 4
Цитата Сообщение от google13 Посмотреть сообщение
const char* strpbrk(const char* s1, const char* s2)
а это что?
0
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 3
23.10.2013, 13:29  [ТС] 5
Помогите еще раз, преподаватель сказал, что надо уйти от стандартных функций, применить работу с указателями и данные водит сам пользователь
0
23.10.2013, 13:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2013, 13:29
Помогаю со студенческими работами здесь

Необходимо создать аналог БД
Всем доброго времени суток! Вопрос вот в чем: мне необходимо создать такой себе аналог БД, где...

Создать аналог strncpy
Добрый день. Столкнулся с проблемой: при компиляции нижеприведенного кода выдает ошибку &quot;Run-Time...

Создать программу аналог
Вот скриншот. Как создать такую программу... Загружайте файлы изображений на форум.

Создать окно аналог WinApi
Вопрос наверное глупый,но пока нет понимания. С недавних пор стал счастливым обладателем Ubuntu...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru