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

Преобразовать string в последовательность чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать структуру с именем TRAIN http://www.cyberforum.ru/cpp-beginners/thread149005.html
Описать структуру с именем TRAIN, содержащую следующие поля:  название пункта назначения;  номер поезда;  время отправления. Написать программу, выполняющую следующие действия:  ввод с...
C++ Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных. Порядок следования ненулевых элементов относительно друг друга не менять. http://www.cyberforum.ru/cpp-beginners/thread149004.html
C++ Шаблоны функций
Добрый день, помогите, пожалуйста, найти ошибку - почему-то оказываюсь за пределами массива: #include<iostream.h> #include<conio.h> #include<iomanip.h> template <class T> void print(T *m,...
C++ Какой компилятор лучше выбрать для проганья на C++?
Добрый день господа,очень хочу попросить совета профессионалов. Учусь программированию на С++,С,но столкнулся с дилеммой,что выбрать к примеру:Visual C,или Dev? Пользую учебник Харви&Пола...
C++ Вывод на экран алфавита http://www.cyberforum.ru/cpp-beginners/thread148993.html
Помогите пожалуйста написать программу, в которой требуется вывести на экран все малые буквы латинского алфавита и их коды.
C++ Как поставить программу на паузу? Можно как то остановить выполнение программы C++ на пол секунды? И затем запустить снова. Если такое возможно то приведите плз пример в коде. подробнее

Показать сообщение отдельно
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
16.07.2010, 03:51
преобразование и копирование подмассивов

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MAXINTARRAY  100
 
#define SUB1START  1
#define SUB1END    6
 
#define SUB2START  7
#define SUB2END    9
 
#define SUB3START  10
#define SUB3END    13
 
#define SUB4START  14
#define SUB4END    19
 
int TranslateBin(int [], const char *, int);
int CopySubarr(int [], const int [],
               size_t, size_t);
int PrintArr(const int *, int);
 
 
/* переводит строковую запись двоичного числа
   в целочисленный массив
   копирует целочисленные подмассивы
   целочисленного массива */
int main(void) /* ANSI C89 */
{
    char number[] = "0101110101110001110";
    
    int arr[MAXINTARRAY];
    size_t arrnobj;
    
    int sub1[MAXINTARRAY],
        sub2[MAXINTARRAY],
        sub3[MAXINTARRAY],
        sub4[MAXINTARRAY];
    size_t sub1nobj,
           sub2nobj,
           sub3nobj,
           sub4nobj;
    
    
    /* 010111 010 1110 001110 */
    
    TranslateBin(arr, number, strlen(number));
    arrnobj = strlen(number);
    
    CopySubarr(sub1, arr, SUB1START, SUB1END);
    sub1nobj = SUB1END - SUB1START + 1;
    
    CopySubarr(sub2, arr, SUB2START, SUB2END);
    sub2nobj = SUB2END - SUB2START + 1;
    
    CopySubarr(sub3, arr, SUB3START, SUB3END);
    sub3nobj = SUB3END - SUB3START + 1;
    
    CopySubarr(sub4, arr, SUB4START, SUB4END);
    sub4nobj = SUB4END - SUB4START + 1;
    
    printf("%15s", "Array: ");
    PrintArr(arr, arrnobj);
    
    printf("%15s", "Subarray 1: ");
    PrintArr(sub1, sub1nobj);
    printf("%15s", "Subarray 2: ");
    PrintArr(sub2, sub2nobj);
    printf("%15s", "Subarray 3: ");
    PrintArr(sub3, sub3nobj);
    printf("%15s", "Subarray 4: ");
    PrintArr(sub4, sub4nobj);
    
    return EXIT_SUCCESS;
}
 
int TranslateBin(int n[], const char *s, int maxsize)
{
    int c, i;
 
    for (i = 0; (c = s[i]) != '\0' && i < maxsize; i++)
        n[i] = (c == '1') ? 1 : 0;
 
    return 0;
}
 
int PrintArr(const int *n, int size)
{
    while (size-- > 0)
        printf(" %d", *n++);
        
    putchar('\n');    
    
    return 0;
}
 
int CopySubarr(int to[], const int from[],
               size_t start, size_t end)
{
    if (start > end)
        return -1;
    
    from += start - 1;
    
    while (start++ <= end)
        *to++ = *from++;
    
    return 0;
}
Код
[guest@station src]$ ./test
        Array:  0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0
   Subarray 1:  0 1 0 1 1 1
   Subarray 2:  0 1 0
   Subarray 3:  1 1 1 0
   Subarray 4:  0 0 1 1 1 0
[guest@station src]$


Добавлено через 3 минуты
там можно сделать
C
1
2
3
4
struct array {
    int arr[MAXINTARRAY];
    size_t nobj;
};
но это для начала будет тяжеловато
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.