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

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

Войти
Регистрация
Восстановить пароль
 
invok
2 / 2 / 0
Регистрация: 18.11.2014
Сообщений: 17
#1

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

06.11.2015, 12:05. Просмотров 162. Ответов 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++
есть ли какая-то функция типо функции в delphi AnsiContainsStr, просто надо узнать содержит ли какая-то строка подстроку.

Функция поиска подстроки в строке - C++
int CChar::strpos(char* sub, char* str) { char* temp = new char; int t=0; for(int i=0; i&lt;strlen(str); i++) { ...

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

Функция вставки подстроки в строку. - C++
size_t n; string S1,S; cout&lt;&lt;&quot;Input S1 : &quot;; getline(cin,S1,'\n'); cout&lt;&lt;&quot;Input S : &quot;; getline(cin,S,'\n'); cout&lt;&lt;&quot;Input...

Функция вставки подстроки в строку - C++
Нужна задача с функцией вставки подстроки в строку. P.S. Функция не должна иметь системных функций, т.е. типо я сам ее написал.

Функция замены всех вхождений подстроки - C++
Необходимо написать функцию типа функции PHP str_replace , которая возвращает строку, в которой все вхождения search заменены на replace....

Функция находящее в строке заданное вхождение подстроки - C++
Описать функцию PosK(S0, S, K) целого типа, возвращающую номер позиции, начиная с которой в строке S содержится K-е вхождение подстроки S0...

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

Функция поиска подстроки в строке. Как вернуть указатель? - C++
Подскажите пожалуйста как доделать функцию. Было дано задание изобрести свой костыль) Функцию, которая искала бы подстроку в строке и...

Своя функция lastpos (поиск последнего вхождения подстроки в строку) - C++
Написать функцию, которая выполняет действие функции LastPos(s,s1)поиск последнего вхождения под строки s1 в строку s. Но без использовании...

Функция Delete(s,n,l) Назначение: удаление из строки s подстроки, начиная с позиции n, длиной l - C++
помогите задачку написать.

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5119 / 4439 / 1476
Регистрация: 14.04.2014
Сообщений: 17,609
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     Функция нахождения подстроки
Ответ Создать тему
Опции темы

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