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

Си-шные строки, как вытащить подстроку - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определение внешнего IP адреса http://www.cyberforum.ru/cpp-beginners/thread513055.html
Необходимо определять внешний IP адрес. Задача усложнена тем, что много пользователей сидят за NAT'ом. Находил примеры где ip получают через сайты (типо myip_ru или ippages_com) Но это всё костыльные решения, т.к. формат не стандартизирован и в любой момент данная зависимость может перестать работать (либо сдохнет сайт, либо его админы решат сменить формат, либо еще что-то... вплодь до выдачи...
C++ Удалить строку и столбец целочисленной квадратной матрицы Дана целочисленная квадратная матрица порядка n. Удалить из нее строку и столбец, на пересечении которых находится максимальный элемент (считаем, что он один). Добавлено через 11 часов 46 минут помогите,пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread513049.html
C++ C++, Программа-фильтр , циклические процессы..
Завтра сдавать, не поманию как... 1) С помощью оператора цикла с постусловием напишите программу-фильтр, которая вводит любые символы, но комментирует только буквы русского алфавита. Завершение работы - по нажатию буквы ‘Я’. 2)
C++ Bool переменные - как записать таблицы истинности функции, используя цикл
Пусть есть 4 переменых типа bool (x1, x2, x3 ,x4) и логическая функция (y = !x1 x3 + x2!x4) как записать таблицы истинности даной функции используя цыкл?
C++ Адаптировать задачу для работы с файлом http://www.cyberforum.ru/cpp-beginners/thread513038.html
Дали такое задание: написать функцию revpositn которая которая принмает два параметра str1,str2 типа string и возвращает позицию начала первого появления в str1 текста содержащего литеры str2 в обратном порядке. Другими словами при вводе слов vnesnos sen выведет 2. Теперь суть проблемы. Написать программу я написал, и она работает: #include <iostream> #include <stdio.h> #include <string> ...
C++ Реализация класса "Время" Помогите в реализации класса 1.разность двух времен в секундах, 2.прибавление ко времени одной секунды, 3.сравнение двух времен, Заранее спасибо! Добавлено через 57 секунд #include "stdafx.h" #include <iostream> подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
06.03.2012, 15:07     Си-шные строки, как вытащить подстроку
besh]<a, Ниже крайне простой и вместе с тем крайне функциональный код,
для функции substr даже строковых библиотек не нужно будетРаботает и возвращает подстроки абсолютно любой длинны т.к. в коде есть динамическое выделение памяти, а не константный буфер как во всех постах выше
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
#include <iostream>
using namespace std;
 
char * substr(const char * text, int beg, int end)
{
    int i;
    char *sub = 0;
    int len = end - beg;
    if(text)//Ïðîâåðÿåì Г*ГҐ ïóñòîé ëè ââîä
    if(text + beg)//Ïðîâåðÿåì ñóùåñòâîâГ*Г*ГЁГҐ Гў ГІГҐГЄГ±ГІГҐ ïîçèöèè beg
    if(0 < len)//Ïðîâåðÿåì êîððåêòГ*îñòü ГЇГ*Г°Г*ìåòðîâ ГЄГ®Г*ГҐГ¶ äîëæåГ* áûòü áîëüøå Г*Г*Г·Г*Г«Г*
    if((sub = new char[1 + len]))//Åñëè end ïðåâîñõîäèò ïîñëåäГ*ГѕГѕ
        //ïîçèöèþ ГІГҐГЄГ±ГІГ* Г*ГЁГ·ГҐГЈГ® Г±ГІГ°Г*ГёГ*îãî âûäåëèì Г·ГіГІГј áîëüøå ГЇГ*ìÿòè Г·ГҐГ¬ Г*Г*äî
    {
        //ÏðèìèòèâГ*îå êîìïèðîâГ*Г*ГЁГҐ, Г¤Г*æå òåêñòîâûõ áèáëèîòåê Г*ГҐ Г*Г*äî áóäåò
        for(i = beg; text[i] != '\0' && i < end; i++)
            sub[i - beg] = text[i];
        sub[i - beg] = '\0';//Íîëü òåðìèГ*Г*òîð ГўГЄГ®Г*öå ñòðîêè
    }
    return sub;
}
 
int main()
{
    char text[] = "abra kadabra";
    cout<<"input : "<<text<<endl;
    //ГЉ ïðìåðó ГЇГіГ±ГІГј áóäåò ïîäñòðîêГ* Г± 5-ГЈГ® ГЇГ® 15-Г© ñèìâîë
    //ГЄГ±ГІГ*ГІГЁ Гў text ìåГ*ГјГёГҐ Г·ГҐГ¬ 15 ñèìâîëîâ Г*Гі âîò Г§Г*îäГ*Г® ГЁ ïðîâåðèì
    //êîððåêòГ*îñòü Г°Г*áîòû substr
    cout<<"output: ";
    char * sub  = substr(text, 5 , 11);
    if(sub)
    {
        cout<<sub<<endl;
        delete [] sub;
    }
    else
        cout<<"Error substr\n";
    system("pause");
    return 0;
}
Скрин работы прилагаю
Миниатюры
Си-шные строки, как вытащить подстроку  
 
Текущее время: 16:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru