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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
GSKpro
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 13
#1

создать функцию-аналог strstr, strchr - C++

22.01.2013, 04:09. Просмотров 1421. Ответов 2
Метки нет (Все метки)

Задание : разработать собственную функцию-аналог strchr и функцию-аналог strstr
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2013, 04:09     создать функцию-аналог strstr, strchr
Посмотрите здесь:

Сбой при нулевой выдаче у функций strchr и strstr - C++
Заранее извиняюсь за свои скудные познания в данной теме. Может быть кто нибудь сталкивался с подобной проблемой. В теории если функции не...

Написать аналог strstr - C++
Добрый день! Нужно написать аналог функции strstr Я написал, но есть одна проблемка, которая возникает при рассмотрении строк такого...

strchr - C++
помогите пожалуйста реализовать данную функцию "вручную".. и еще один вопросик.... есть символьный массив ну допустим {'1', '6', '4',...

Подскажите функцию аналог memcpy() - C++
Функция memcpy() копирует из одного массива в другой первые size элементов. А есть аналогичная стандартная функция, но которая бы...

функция strchr - C++
мне надо написать аналог функции strchr. т.к. по заданию нельзя использовать <string.h>

Функция strchr - C++
Наткнулся я на функцию strchr и не могу понять что она делает можете мне привести пример-код где демонстрируются возможности этой функции и...

Объясните про strchr - C++
pch-str+1 - 1).что это значит? Координально не понятно, ведь строкой выше, а именно pch=strchr(str,'s') мы присвоили pch адрес переменной...

Функция strchr (Язык Си) -не выполняет=( - C++
Не могу понять почему не работает, обьясните, пожалуйста, как исправить!! вот такое работает (это пример из компилятора): char...

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

Создать аналог функции strpbrk на С++ - C++
Здравствуйте, прошу о помощи. Дано задание сделать аналог функции strpbrk на С++, чтобы работало аналогично этой задачи, только сделано...

Найти первые вхождения символов (функции strchr(), tolower()) - C++
В массиве строк , введенных пользователем , найти первые вхождения символов ' s ' и 'S' . Использовать функции strchr ( ) , tolower ( ) .

Почему функция strchr по разному работает при разных строках? - C++
Только начал изучать С. Пользую Borland C++ v.3.1 Нужно работать со строками. Вот стандартный пример из стандартного хелпа компилятора: ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
extenup
54 / 54 / 3
Регистрация: 12.11.2011
Сообщений: 109
22.01.2013, 14:17     создать функцию-аналог strstr, strchr #2
strchr | strstr :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
char *MyStrstr(const char *str, int c)
{
    for(int i = 0; str[i] != 0; i++)
        if(str[i] == c)
            return const_cast<char*>(str + i);
 
    return NULL;
}
 
int main()
{
    const char *str = "hello world";
    char *str_2 = MyStrstr(str, 'w');
    printf(str_2);
 
    return 0;
}
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
22.01.2013, 20:52     создать функцию-аналог strstr, strchr #3
strstr(). Кастовать - конечно, не самый лучший вариант. Требует теста.
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
#include <iostream> 
#include <cstring>
namespace mystd
{
    char *strstr(const char *str, const char *substr)
    {
        do {
            if (*str == *substr)
            {
                const char* buf = substr;
                int k(0);
                while(*str == *buf++ && *str)
                {
                    str++;
                    k++;
                }
                if (k == strlen(substr))
                    return const_cast<char*>(str-k);    
            }
        } while (*str++);
        return NULL;
    }
}
int main()
{
    const char *str = "hello world";
    char *str_2 = mystd::strstr(str, "or");
    std::cout<<str_2;
    return 0;
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru