Форум программистов, компьютерный форум 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:44     Си-шные строки, как вытащить подстроку
Цитата Сообщение от fasked Посмотреть сообщение
Если мне понадобится статчиеский массив, то я не смогу ее использовать.
- можешь пояснить на примере???

Добавлено через 3 минуты
fasked, запиши в моём коде
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
char text[] = "abra kadabra";
вот так
static char text[] = "abra kadabra";
и всё отработает без проблем, думаю что то ты перемудрил

Добавлено через 8 минут
Если речь коснулась Си, ну ничем не отличающийся код со static char text[]
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 <stdio.h>
#include <stdlib.h>
 
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 = (char *)malloc(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()
{
    static char text[] = "abra kadabra";
    printf("input : %s\n",text);
    //К прмеру пусть будет подстрока с 5-го по 15-й символ
    //кстати в text меньше чем 15 символов ну вот заодно и проверим
    //корректность работы substr
    printf("output: ");
    char * sub  = substr(text, 5 , 11);
    if(sub)
    {
        printf("%s\n",sub);
        free((void *)sub);
    }
    else
        printf("Error substr\n");
    getchar();
    return 0;
}
Вот и проверка http://codepad.org/vPp56BAX
Не знаю что тут ещё разбирать, все работает вот и всё...
 
Текущее время: 15:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru