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

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

Войти
Регистрация
Восстановить пароль
 
genaryok
22 / 22 / 4
Регистрация: 18.10.2013
Сообщений: 62
#1

Аналог strrchr - C++

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

Проверьте аналог 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 17:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Аналог strrchr (C++):

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

Аналог javy - C++
Приветствую, не подскажете, есть ли в С++ что-то подобное, как абстрактные классы в java? Если хочу сделать аналог класса Math из явы, но...

аналог realloc() в С++ - C++
Здравствуйте. собственно вопрос:-существует ли таковой?

Object аналог в С++ - C++
Вопрос - В Java если создавать динамиечский массив то можно указать Object как тип элементов и пихать туда разные классы есть ли аналог...

Аналог AnsiString в Qt - C++
Чтобы в программе использовать тип AnsiString, что нужно подключить : #include *** ????

аналог INKEY$ в С++ - C++
Здравствуйте!! В Qbasic есть оператор INKEY$ который работает обычно в цикле и по которому можно узнать какая клавиша была нажата и...

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

Добавлено через 1 минуту
Цитата Сообщение от genaryok Посмотреть сообщение
int j=strlen(a)-1;
если размер строки 0 то j будет (char)(-1)
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
genaryok
22 / 22 / 4
Регистрация: 18.10.2013
Сообщений: 62
13.11.2013, 17:59  [ТС] #4
Цитата Сообщение от Raali Посмотреть сообщение
Может все таки при компиляции?
какие именно ошибки?
Ну я немного не правильно сказал, не ошибку, а "Прекращена работа программы"

Добавлено через 1 минуту
Цитата Сообщение от Tulosba Посмотреть сообщение
cтроку выделили, но не инициализировали, поэтому strlen() может вернуть черти что.
И вообще, используйте std::string
Согласен, но проблема не в ней. Проблема с функцией, при некоторых входных данных прекращает работу
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
genaryok
22 / 22 / 4
Регистрация: 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
16530 / 10800 / 1637
Регистрация: 24.12.2010
Сообщений: 20,813
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
genaryok
22 / 22 / 4
Регистрация: 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
13.11.2013, 19:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 19:15
Привет! Вот еще темы с ответами:

strtoupper аналог в С++ ... - C++
Для тех кто не знает функция strtoupper в пхп преобразует символы с нижнего регистра в верхний есть ли в с++ такая?? или придется все таки...

Аналог VB-функции Like - C++
Есть ли в C++ аналог этой функции? Чтобы программа по заданному шаблону проверяла подобие строк. Если есть, что подскажите что это за...

Аналог str() в С++ - C++
Скажите, пожалуйста, аналог функции str() в С++

Аналог kbhit - C++
Подскажите пожалуйста, какую функцию необходимо использовать в С++, чтобы прога поняла, что нажата клавиша на клаве (вместо функции kbhit,...


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

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

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