Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
22 / 22 / 8
Регистрация: 18.10.2013
Сообщений: 62
1

Аналог strrchr

13.11.2013, 17:45. Показов 4061. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проверьте аналог strrchr кому не лень пожалуйста. Компилятор любит выдавать ошибки при тестировании программы. Может чего глупого написал и не замечаю?
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 <iostream>
using namespace std;
 
char *mystrrchr(char *a, int s)
{
    int j=strlen(a)-1;
    if(j==0) return &a[0];
    while(a[j]!=a[0])
    {
        if(a[j]==s)
            return &a[j];
        else j--;
    }
    return NULL;
}
 
void main()
{
    char *str=new char[81];
    cout<<"Enter string\n";
    cin.getline(str, strlen(str));
    char s;
    cout<<"Enter symbol : ";
    cin>>s;
    char *result=mystrrchr(str,s);
    cout<<result<<endl;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2013, 17:45
Ответы с готовыми решениями:

Ошибка в функции strrchr
Добрый вечер! помогите найти причину ошибки. делала программу, считывающую текст из файла, сортирующую его по частоте слов, и...

STRRCHR на ассемблере
Здравствуйте! Помогите с реализацией функции strrchr на ассемблере(в Паскале)

Подскажите код стандартной функции strrchr
Привет, интересует код стандартной функции strrchr в c++

7
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
13.11.2013, 17:54 2
Цитата Сообщение от genaryok Посмотреть сообщение
Компилятор любит выдавать ошибки при тестировании программы.
Может все таки при компиляции?
какие именно ошибки?

Добавлено через 1 минуту
Цитата Сообщение от genaryok Посмотреть сообщение
int j=strlen(a)-1;
если размер строки 0 то j будет (char)(-1)
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
13.11.2013, 17:55 3
Цитата Сообщение от genaryok Посмотреть сообщение
char *str=new char[81]; cout<<"Enter string\n"; cin.getline(str, strlen(str));
cтроку выделили, но не инициализировали, поэтому strlen() может вернуть черти что.
И вообще, используйте std::string
0
22 / 22 / 8
Регистрация: 18.10.2013
Сообщений: 62
13.11.2013, 17:59  [ТС] 4
Цитата Сообщение от Raali Посмотреть сообщение
Может все таки при компиляции?
какие именно ошибки?
Ну я немного не правильно сказал, не ошибку, а "Прекращена работа программы"

Добавлено через 1 минуту
Цитата Сообщение от Tulosba Посмотреть сообщение
cтроку выделили, но не инициализировали, поэтому strlen() может вернуть черти что.
И вообще, используйте std::string
Согласен, но проблема не в ней. Проблема с функцией, при некоторых входных данных прекращает работу
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
13.11.2013, 18:06 5
Цитата Сообщение от genaryok Посмотреть сообщение
но проблема не в ней
Проблем может быть несколько.
А функцию Вы что-то нагородили:
C++
1
2
3
4
5
6
7
8
9
char* mystrrchr(char *a, int s)
{
    while( *a )
    {
        if( *a == s ) return a;
        a++;
    }
    return 0;
}
1
22 / 22 / 8
Регистрация: 18.10.2013
Сообщений: 62
13.11.2013, 18:15  [ТС] 6
Цитата Сообщение от Tulosba Посмотреть сообщение
Проблем может быть несколько.
А функцию Вы что-то нагородили:
C++
1
2
3
4
5
6
7
8
9
char* mystrrchr(char *a, int s)
{
    while( *a )
    {
        if( *a == s ) return a;
        a++;
    }
    return 0;
}
Да, это так, только это strchr(первое вхождение символа) я пишу аналог strrchr(последнее вхождение символа) у да ладно, сейчас подкорректирую и все будет ок. Спасибо)
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
13.11.2013, 18:36 7
Функция составлена с таким количеством ошибок, что разбирать ее бессмысленно. Вот нормальный вариант.
C++
1
2
3
for(j=strlen(a) - 1; j>=0; j--)
  if (a[j]==s) return a+j;
return NULL;
1
22 / 22 / 8
Регистрация: 18.10.2013
Сообщений: 62
13.11.2013, 19:15  [ТС] 8
Цитата Сообщение от Байт Посмотреть сообщение
Функция составлена с таким количеством ошибок, что разбирать ее бессмысленно. Вот нормальный вариант.
C++
1
2
3
for(j=strlen(a) - 1; j>=0; j--)
  if (a[j]==s) return a+j;
return NULL;
Я уже переписал функцию, но все равно спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2013, 19:15
Помогаю со студенческими работами здесь

Аналог Компрессора Данфосс FR-8.5A, Не могу найти аналог компрессора
Кто-нибудь подбирал аналог данного компрессора,он стоит на низкотемпиратурном ларе? Заранее спасибо!

Аналог Zilog 1883, Аналог Zilog 1883 Модуль EATON A1 D20
Подскажите плз есть ли аналог у Zilog 1883 cm20a (так написано на самой микросхеме)? Модулек EATON A1 D20. Или документацию какую на...

Аналог Like
всем привет, подскажите, как мне искать в документе необходимые слова в поле Код (Delphi): search = &quot;Form=&quot;KR&quot; &amp;...

Аналог WHERE . IN (.)
Здравствуйте. Есть массив со значениями типа &quot;xkd 251-1&quot; Нужно обновить те поля таблицы, которые совпадают со значениями массива. Если...

Аналог 1С
Помогите новичку! Надо написать не сложную программу для оффлайн хранения простых справочников и документов. И возможно простые отчеты...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Неблокируемый стек в C++26: реализуем простой сборщик мусора
stackOverflow 02.03.2025
Многопоточные приложения требуют надежных и производительных структур данных, способных эффективно работать в условиях конкурентного доступа. Неблокируемые структуры данных представляют собой особый. . .
Шаблон REQ/REP в ZeroMQ: сверхбыстрый обмен сообщениями в C++ и Python
stackOverflow 02.03.2025
Построение высоконагруженных распределенных систем требует надежного и производительного механизма обмена сообщениями. ZeroMQ выделяется среди прочих решений своей невероятной скоростью работы и. . .
Нестандартные приемы работы с итераторами в C++
stackOverflow 02.03.2025
Итераторы - один из краеугольных камней C++, предоставляющий универсальный механизм обхода и манипуляции данными в контейнерах. Появившись как замена небезопасным указателям, они эволюционировали от. . .
Лексический анализ и регулярные выражения в C++26
stackOverflow 02.03.2025
Лексический анализ - ядро любого компилятора и инструмента обработки текста. Каждый программист сталкивается с задачами парсинга строк, обработки файлов конфигурации или анализа пользовательского. . .
Подробно о std::mdspan в C++23
stackOverflow 02.03.2025
Работа с многомерными массивами данных традиционно была одной из сложных задач в C++. Программистам приходилось создавать собственные абстракции или использовать сторонние библиотеки для эффективной. . .
Колмогоровская сложность в C++: Путь к совершенному коду
stackOverflow 02.03.2025
Абстрактная математическая теория Колмогорова стала мощным средством оценки и улучшения программного кода. Сложность алгоритма - не только в его вычислительной эффективности, но и в том, насколько. . .
Изменения в C# 14
stackOverflow 02.03.2025
Одно из самых значимых изменений в C# 14 - поддержка коллекционных выражений, которые позволяют создавать и инициализировать коллекции с помощью нового лаконичного синтаксиса. Это нововведение. . .
Разработка кроссплатформен­­­­ного мобильного приложения для iOS/Android на C++
bytestream 02.03.2025
C++ как язык программирования высокого уровня с прямым доступом к аппаратным ресурсам позволяет создавать приложения, работающие одинаково быстро как на iOS, так и на Android устройствах. Ни для кого. . .
Аутентификация/авторизация на Golang
bytestream 02.03.2025
Go предлагает множество возможностей для создания надежных систем аутентификации. Встроенные криптографические пакеты, высокая производительность и простота параллельной обработки запросов делают его. . .
Нововведения TypeScript 5.8
bytestream 02.03.2025
TypeScript 5. 8 приносит много возможностей и оптимизаций, которые существенно расширяют границы типобезопасного программирования на JavaScript. Эта версия включает ряд значительных улучшений в работе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru