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

программу копирования из заданного текста данной части в строку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ массивы, его индексы http://www.cyberforum.ru/cpp-beginners/thread179023.html
Известны данные о росте 8 юношей в классе, упорядоченны по убыванию. Ни одна пара учеников не имеет одинаковый рост. В начале учебного года в класс поступил новый ученик.Какое место в перечне роста...
C++ Вычислить сумму ряда Помогите написать программу накопления суммы. S=1/a+1/a(a+1)+1/a(a+1)(a+2)... http://www.cyberforum.ru/cpp-beginners/thread179019.html
Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале C++
в одномерном массиве состоящем из n вещественных элементов вычислить: 1)максимальный элемент массива; 2)сумму элементов массива, расположенных до последнего положительного элемента. Сжать массив,...
C++ преобразовать задание ввиде функции
Все необходимые данные для функций должны передаваться им в качестве параметров. Использование гло- бальных переменных в функциях не допускается. #include "stdafx.h" #include <stdlib.h> #include...
C++ Как создать приоритетную очередь? http://www.cyberforum.ru/cpp-beginners/thread178995.html
Пусть имеется обслуживающая система из n обслуживающих аппара-тов. Работа этой системы разбита на такты. В течение одного такта мо-жет одна заявка стать в очередь и одна заявка приступить к...
C++ Переворот линейного списка Построить линейный список из нескольких динамических переменных, содержащих вводимые целые числа. Если введенный список упорядочен по возрастанию, то оставить его без изменения, иначе перестроить... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9912 / 5835 / 975
Регистрация: 25.07.2009
Сообщений: 11,004
21.10.2010, 00:28
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
#include <stdio.h>
 
/* 
*    копирует в dst не больше cnt символов из src начиная с индекса idx (считается с 0). dst должна быть
*    на символ больше для завершающего нуля. В случае ошибки возвращает NULL, если ошибки
*    не произошло, возвращает dst
*/
 
char * substring(char * dst, const char * src, size_t cnt, size_t idx){
    char * p;
    
    if ( ! dst || ! src || ! cnt )
        return NULL;
    while ( idx-- )
        if ( ! *src++ )
            return NULL;
    
    p = dst;
    *(p + cnt) = 0;
    while ( cnt-- && ( *p++ = *src++ ) )
        ;
    
    return dst;
}
 
int main(void){
    char src[BUFSIZ], dst[BUFSIZ];
    int cnt, idx;
    
    printf("String: ");
    scanf("%[^\n]%*c", src);
    printf("Start index: ");
    scanf("%d", &idx);
    printf("Number of symbols: ");
    scanf("%d", &cnt);
    if ( ! substring(dst, src, cnt, idx) ){
        printf("Error!\n");
        return 1;
    }
    printf("Substring: %s\n", dst);
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.