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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ganhart
3 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 11
#1

Разбивка строчного массива - C++

30.06.2012, 20:30. Просмотров 385. Ответов 3
Метки нет (Все метки)

Добрый день.

Имеется в наличии массив
string * arr=new string[23]

Внутри него находится следующие символы:
34 61 36 11 17 34 76 99 45 65 72
P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12

Возможно ли разбить этот массив на 2 таких, и если да, то как:
C++
1
2
float * arr=new float[11]
string * arr= new string[12]
Спасибо.

Добавлено через 27 минут
Сам додумался. Тему можно закрывать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2012, 20:30     Разбивка строчного массива
Посмотрите здесь:

C++ Разбивка массива по элементам!
Разбивка на лексемы и состовление из лексем строк C++
Разбивка числа C++
C++ Разбивка физической формулы на компоненты
Как создать переменную/массив строчного типа C++
Разбивка введенного числа поэлементно на массив C++
C++ C++ разбивка текстового файла на части
C++ Чтение строчного массива с текстового файла
C++ Сложная разбивка изображения на 25 секторов
STL разбивка текста C++
Инициализация строчного массива вручную C++
как найти первый и последний символы строки строчного массива? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1283 / 945 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
30.06.2012, 20:34     Разбивка строчного массива #2
Додумался, выложи решение вдруг кому пригодится.
Ganhart
3 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 11
30.06.2012, 22:18  [ТС]     Разбивка строчного массива #3
В функцию передается тот самый массив и кол-во элементов в нем. Подозреваю, что можно как-то проще сделать. Но я только так приудмал.

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
void out(string * arr, int count)
{
int countf=0;
int counts=0;
int i=0;
float d;
stringstream f1;
for (i=0;i<count;i++)
{
    f1<<arr[i];
    f1<<" ";
}
while(f1>>d)
{
    countf++;
}
counts=count-countf;
float * arrf= new float[countf];
string * arrs= new string[counts];
stringstream f2;
stringstream f3;
for (i=0;i<count;i++)
{
    f2<<arr[i];
    f2<<" ";
}
for (i=0;i<countf;i++)
    f2>>arrf[i];
for (i=countf;i<count;i++)
{
    f3<<arr[i];
    f3<<" ";
}
for (i=0;i<counts;i++)
    f3>>arrs[i];
}
igorrr37
 Аватар для igorrr37
1600 / 1228 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
30.06.2012, 23:59     Разбивка строчного массива #4
такой способ
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
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cctype>
#include <cstdlib>
 
template<typename T>
void PrintVec(std::vector<T> const& v)
{
    typename std::vector<T>::const_iterator it, itEnd;
    for(it = v.cbegin(), itEnd = v.cend(); it != itEnd; ++it)
    {
        std::cout << *it << ' ';
    }
}
 
int main()
{
    std::vector<std::string> v{"34", "63", "P1", "P2", "17"}, vs;
    std::vector<float> vf;
    std::vector<std::string>::const_iterator it, itEnd;
    for(it = v.cbegin(), itEnd = v.cend(); it != itEnd; ++it)
    {
        if(std::all_of(it->begin(), it->end(), static_cast<int(*)(int)>(std::isdigit)))
        {
            vf.push_back(atof(it->c_str()));
        }
        else
        {
            vs.push_back(*it);
        }
    }
    std::cout << "vs contains:" << std::endl;
    PrintVec(vs);
    std::cout << "\n\nvf contains:" << std::endl;
    PrintVec(vf);
    return 0;
}
Yandex
Объявления
30.06.2012, 23:59     Разбивка строчного массива
Ответ Создать тему
Опции темы

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