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

Функция нахождения подстроки - C++

Восстановить пароль Регистрация
 
invok
2 / 2 / 0
Регистрация: 18.11.2014
Сообщений: 17
06.11.2015, 12:05     Функция нахождения подстроки #1
Здравствуйте. Функция GetSubstring принимает на вход строку, а возвращает подстроку длинной charCount с начальной позиции startIndex, а так же проверяет на возможность вывода подстроки. В тех случаях когда строку подстроку вывести нельзя функция правильно отрабатывает, но когда это возможно выводится нечитаемая ересь, плиз помогите
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
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "stdafx.h" 
#include <stdio.h> 
#include <iostream>
using namespace std;
int GetLength(char* string)
{
    int i;
    int length = 1;
    for (i = 1; string[i]; i++)
    {
        length++;
    }
    return length;
 
}
char* GetSubstring(char* string, int startIndex, int charCount)
{
    char* Substr = new char[abs(charCount)];
    int i, j;
    if (startIndex>-1 && charCount>0 && charCount+startIndex<=GetLength(string))
    {
        for (i = startIndex, j = 0; i>charCount; i++,j++)
        {
                Substr[j] = string[i];
                Substr[j + 1] = '\0';
        }
    }
    else
    {
        Substr[0]= '\0';
        cout << "NULL ";
    }
    return Substr;
}
int main()
{
    char str[]= "Hello, World!";
    cout << GetSubstring(str, 2, 4) << "-is substr " << endl;
    cout << GetSubstring(str, -3, 3) << "-is substr " << endl;
    cout << GetSubstring(str, 2, -4) << "-is substr " << endl;
    cout << GetSubstring(str, 7, 8) << "-is substr " << endl;
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2015, 12:05     Функция нахождения подстроки
Посмотрите здесь:

Функция вставки подстроки в строку. C++
C++ Функция поиска подстроки в строке
C++ Функция удаления подстроки из строки
Строки(функция поиска подстроки) C++
Функция поиска подстроки в строке. Как вернуть указатель? C++
Своя функция lastpos (поиск последнего вхождения подстроки в строку) C++
Функция находящее в строке заданное вхождение подстроки C++
C++ Функция замены всех вхождений подстроки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4319 / 3740 / 1260
Регистрация: 14.04.2014
Сообщений: 14,670
07.11.2015, 08:57     Функция нахождения подстроки #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
char* GetSubstring(char* string, int startIndex, int charCount)
{
    if (startIndex < 0 || charCount <= 0) return NULL;
    char* Substr = new char[charCount + 1];
    int i;
        for (i = startIndex; string[i] != '\0' && i < startIndex + charCount; i++) Substr[i - startIndex] = string[i];
        Substr[i] = '\0';
    return Substr;
}
Вызывать только с сохранением результата и удалением:
C++
1
2
3
char *ss = GetSubstring(str, 2, 4);
cout << ss << "-is substr " << endl;
delete[] ss;
Yandex
Объявления
07.11.2015, 08:57     Функция нахождения подстроки
Ответ Создать тему
Опции темы

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