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

Вписать в строковый массив числа и математические знаки из введённой формулы - C++

Восстановить пароль Регистрация
 
qedster
0 / 0 / 0
Регистрация: 07.03.2016
Сообщений: 2
07.03.2016, 18:45     Вписать в строковый массив числа и математические знаки из введённой формулы #1
Хотелось бы, чтобы программа вписывала в строковый массив числа и математические знаки из введённой формулы в разные элементы, например ввод[150-234+12], массив['150';'-';'234';'+';'12']. Кто знает, в чём ошибка, прошу помочь.
(Возможны грубые ошибки при преобразовании char в *char, указание на это или формула решения не помешают).
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
#include <iostream>
using namespace std;
char str[100];
char text;
int num, i, z, p;//p- счётчик переходов
int main()
{
    setlocale (LC_ALL, "Russian");
    cout<<"Введите функцию: ";
    cout<<"F(x)= ";
    cin>>str;
    num=strlen(str);
    z=0;
    p=0;
    char *mass=new char[num];
    for(i=0; i<num; i++){
           if(isdigit(str[i])) text= strcat(text,str[i]);
           else{
               mass[p]=text;
               cin.get();
                   p++;
                   mass[p]=str[i];
                   p++;}
    };
    mass[p]=text;
    cin.get();
    for(i=0; i<num; i++)cout<<mass[i]<<" ";
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2016, 18:45     Вписать в строковый массив числа и математические знаки из введённой формулы
Посмотрите здесь:

Определение числа положительных чисел во введённой с клавиатуры последовательности C++
C++ вывести на экран числа,вот по примеру ,там числа и знаки изменить надо
C++ Вписать в массив фигуру
C++ Математические операции для дробного числа ( заданного структурой )
C++ Комплексные числа. Реализовать класс и математические операции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Igrich
4 / 4 / 7
Регистрация: 07.03.2016
Сообщений: 44
07.03.2016, 19:22     Вписать в строковый массив числа и математические знаки из введённой формулы #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
char * strcat ( char * destination, const char * source );
Как видим у функции аргументы - это указатели на массивы char-ов,Вы же пытаетесь вызвать функцию с параметрами (char,char) и к тому же присвоить переменной temp указатель на char,в то время как она не является указателем.
k1n3c7
8 / 8 / 14
Регистрация: 06.03.2016
Сообщений: 51
07.03.2016, 19:33     Вписать в строковый массив числа и математические знаки из введённой формулы #3
Можно как то доставать первый символ в потоке, не забирая его из него, но я забыл. Так было бы еще на 1 строчку меньше.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    vector<int> nums;
    vector<char> punct;
 
    char c; int i;
    while (cin.get(c))
        if (isdigit(c)) {
            cin.unget();
            cin >> i;
            nums.push_back(i);
        } else {
            punct.push_back(c);
        }
    return 0;
}
Ника))
 Аватар для Ника))
39 / 39 / 8
Регистрация: 08.12.2010
Сообщений: 338
07.03.2016, 19:56     Вписать в строковый массив числа и математические знаки из введённой формулы #4
qedster, Нa text выделено 1 байт, а ты пытаешься запихнуть туда целую строку
Yandex
Объявления
07.03.2016, 19:56     Вписать в строковый массив числа и математические знаки из введённой формулы
Ответ Создать тему

Метки
c++, массив, ошибка, проблема, Строки
Опции темы

Текущее время: 19:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru