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

String разбить на лексемы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести все нечисловые аргументы командной строки http://www.cyberforum.ru/cpp-beginners/thread799311.html
В командной строке задается произвольное к-во аргументов. Вывести все нечисловые аргументы. мой код #include < iostream > #include <ctype.h> #include <conio.h> #include< math.h > using namespace std;
C++ string Возможно чтобы было вот такое подобное? Т.е. чтобы под каждым индексом было по 2 элемента. str ="aa"; str ="ff"; str = "awfd"; http://www.cyberforum.ru/cpp-beginners/thread799306.html
лезут ошибки в классе, не могу разобраться C++
#include<iostream.h> #include<conio.h> #include<stdio.h> class myString { public: char *str; public:
C++ Файл: При сохранение в файл big100.txt в блокноте отображаются иероглифы, почему?
При сохранение в файл big100.txt в блокноте отображаются иероглифы интересно почему #include<iostream> #include<cstdlib> using namespace std; void main() { FILE *f=fopen("chose.txt","w"); int y=0;
C++ Выход по нажатию ESC http://www.cyberforum.ru/cpp-beginners/thread799281.html
#include "stdafx.h" #include <iostream> #include <conio.h> float sum(); float razn(); float del(); float proizv(); float fact(); #define ESC 27
C++ Вложенные циклы. Определить суму цифр заданного числа без использования операций целочисленного деления Помогите решить задачку)) Дано натуральное число n. Определить суму цифр заданного числа без использования операций целочисленного деления. Использовать вложенные циклы. подробнее

Показать сообщение отдельно
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
03.03.2013, 14:17     String разбить на лексемы
Можно таким образом разбить строку на лексемы. Создать два вектора для хранения цифр и операций, а затем просто добавить их в string str2 соответствующем порядке.
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
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
int main()
{
    string str = "25+69-65*85/58+65*(12+36)+36";
    char* S = new char[str.length()+1];
    strcpy(S,str.c_str());
    char* ptr = strtok(S,"+-*/()");
    vector<string> digit;
    
    do{
 
        digit.push_back(ptr);
    }while(ptr = strtok(NULL,"+-*/()"));
    
    for(int i=0;i<digit.size();i++)
        cout<<digit[i]<<endl;
    delete [] S;
    system("pause");
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru