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

работа со строкой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Посимвольный ввод в массив http://www.cyberforum.ru/cpp-beginners/thread368005.html
Здравствуйте! Вы не могли бы посмотреть и, по возможности, ответить на 2 вопроса: 1) Как мне сделать условие в цикле, чтобы он завершался при нажатии на Enter; 2) Почему у меня значения в массив записываются через одно; Заранее спасибо! #include<iostream> void main() { {char *c = new char(); for(int i=0;((cin.get())!=13);i++)
C++ Помогите с графами... Получил задание в универе. У меня уже есть созданная матрица смежности и т.д. Незнаю почему, но даже не могу понять, как это сделать..:( Помогите реализовать методы. Или хоть объясните Подробно алгоритм нахождения... 1) определить маршрут заданной длины из заданой вершины 2) цепь между двумя заданными вершинами 3) простую цепь заданной длины из заданной вершины Добавлено через 21 минуту... http://www.cyberforum.ru/cpp-beginners/thread368003.html
C++ Использование bitset
Здравствуйте, уважаемые господа. Каким образом можно реализовать двумерный bitset? Заранее благодарю за возможные ответы.
C++ Замена символа конца ввода eos на произвольную строку
Есть пример из страуструпа std::map<const std::string,int> hist; void record(std::string s) { hist++; } void print(std::pair<const std::string,int>& r)
C++ Threads http://www.cyberforum.ru/cpp-beginners/thread367985.html
Недавно начал изучать многопоточность. Нашёл функцию uintptr_t _beginthreadex( // NATIVE CODE void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr ); Вроде всё понятно, но возникли вопросы: 1. Точка входа в поток возвращает unsidned. Куда это значение передаётся, то есть как его...
C++ Дана строка. Указать те слова, которые содержат хотя бы одну букву "k" C++: дана строка. указать те слова которые содержат хотя бы одну букву k, помогите пожалуйсто решить подробнее

Показать сообщение отдельно
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.10.2011, 22:55     работа со строкой
вот например простой разбор строки состоящей из слов и чисел с фиксированой точкой
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
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <string>
#include <vector>
#include <cctype>
 
typedef enum { STRING, NUMERIC } lex_type;
typedef std::pair<std::string, lex_type> T_pair;
 
int main()
{
    std::vector<T_pair> vec;
    std::cout << "Enter  string >>> ";
    std::string str, buf;
    std::getline(std::cin, str);
 
    for (std::string::size_type i = 0, len = str.length(); i < len;)
    {
        if (std::isalpha(str[i]))
        {
            buf = str[i++];
            while (i < len && std::isalpha(str[i]))
            {
                buf += str[i++];
            }
            vec.push_back(T_pair(buf, STRING));
        }
 
        else if (std::isdigit(str[i]))
        {
            buf = str[i++];
            while (i < len && std::isdigit(str[i]))
            {
                buf += str[i++];
            }
            if (str[i] == '.')
            {
                buf += str[i++];
                while (i < len && std::isdigit(str[i]))
                {
                    buf += str[i++];
                }
            }
            vec.push_back(T_pair(buf, NUMERIC));
        }
 
        else if (str[i] == '.')
        {
            buf = str[i++];
            if (std::isdigit(str[i]))
            {
                while (i < len && std::isdigit(str[i]))
                {
                    buf += str[i++];
                }
                vec.push_back(T_pair(buf, NUMERIC));
            }
        }
 
        else
        {
            ++i;
        }
    }
 
    std::for_each(vec.begin(), vec.end(), [](const T_pair& p)
    {
        std::cout << p.first << '\t' << (p.second == STRING ? " string" : "float") << '\n';
    });
 
    std::system("pause");
 
    return 0;
}
 
Текущее время: 14:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru