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

Парсер массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Откорректировать программу http://www.cyberforum.ru/cpp-beginners/thread218114.html
Пожалуйста, переделайте программу, чтобы использовалась адресная арифметика , как я понял работа с указателями(*) Вот сам код: #include <stdio.h> #include <conio.h> #include <locale.h> void...
C++ удаление файлов по маске необходимо удалить все *.txt файлы из директории D:\\ я нашел в инете код но у меня он не запускается может кто скажет что не так #include <windows.h> #include <iostream.h> void main() { ... http://www.cyberforum.ru/cpp-beginners/thread218113.html
C++ Сортировка четных/нечетных элементов массива
В одномерном массиве состоящем из n вещественных элементов вычислить 1)... 2)... 3)упорядочить по возрастанию отдельно элементы стоящие на четных,отдельно на нечетных местах вот такая...
создание html C++
народ подскажите пожалуесто как создать с помощью borland c++ html докумен со следующим текстом (код с++ не нужно вводить в html т.е что выведет на экран программа то и нужно поместить в документ)...
C++ Подсчет количества символов http://www.cyberforum.ru/cpp-beginners/thread218096.html
Доброго времени суток всем! помогите,пожалуйста,решить задачу: Программа должна подсчитывать количество символов в заданном текстовом файле input.txt Вроде бы есть схожие по условию задания,но...
C++ строка задом на перед задание : . Напишите функцию, создающую новую строку, в которой все слова из старой строки следуют в обратном порядке и разделены одним знаком пробела. функция: void reverse (char *str1,char... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
23.12.2010, 13:31
Цитата Сообщение от lemegeton Посмотреть сообщение
Это решение, похоже, исходную строку модифицирует.
Вот без модификации исходной строки (также немного подправил условие в строке 41):
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define BUFFSIZE 80
#define MAXNUMCNT 20
 
int* getNumbers(const char*, int*, size_t, size_t*);
 
int main()
{
    char buf[BUFFSIZE + 1];
    int  nums[MAXNUMCNT];
    size_t cnt, i;
    puts("Введите строку чисел");
    fgets(buf, BUFFSIZE, stdin);
    getNumbers(buf, nums, MAXNUMCNT, &cnt);
    for(i = 0; i < cnt; ++i)
    printf("nums[%02u] = %d\n", i + 1, nums[i]); 
    return 0;
}
 
/* Функция будет разбирать строку str и разбивать ее на числа
 * которые будут храниться в массиве numbers, но не больше, чем
 * size чисел. Если указатель cnt не указывает на NULL, то в нем
 * возвращается количество распарсенных чисел
 * Строка уже не разрушается
 */ 
int* getNumbers(const char* str, int* numbers, size_t size, size_t* cnt)
{
    char* _str;
    if((_str = strdup(str)) == NULL)
    {
        perror("strdup");
        exit(1);
    }
    size_t n = 0;
    char *p = _str;
    char *q = _str;
        
    while(*q && (n < size))
    {
        if(*q == '|')
        {
            *q++ = '\0';
            numbers[n++] = atoi(p);
            p = q;
        }
        else
             ++q;
    }
        
    if(n < size)
        numbers[n++] = atoi(p);
        
    if(cnt)
        *cnt = n;
               
    free(_str); 
    return numbers;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.