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

Считать символы из вектора в массив чаров - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ класс Alfa http://www.cyberforum.ru/cpp-beginners/thread650736.html
Создать класс Alfa таким образом, чтобы при создании первого и уничтожении последнего объекта этого типа на экран выдавались соответствующие сообщения. Указание. Применить статические компоненты класса.
C++ Кодировка в консоли Добрый день , имея некоторый опыт программирования на c# решил так же изучить С++, однако при написании простейшей программ (консольные приложения). Столкнулся с проблемой что русский текст отображается некорректно, явно проблемы с кодировкой...Например даже такой код не работает cout<<"Привет всем!"; Долго лазил в настройках проекта не нашел никаких пунктов связанных с кодировкой. В c# ни... http://www.cyberforum.ru/cpp-beginners/thread650713.html
Вычислить сумму модулей элементов массива, делящихся на три C++
помогите пожалуйста очень срочно надо :) Добавлено через 1 минуту ой в одномерном:) Добавлено через 28 минут уже ненадо :(
C++ написать программу нахождения суммы большего и меньшего из трех чисел
помогите пожалуйста очень срочно надо :) Добавлено через 34 минуты уже ненадо :(
C++ Не получается запустить поток http://www.cyberforum.ru/cpp-beginners/thread650670.html
Доброго времени суток. Делаю как написано в книжке но ничего не получается. Помогите пожалуйста. void __fastcall myThread::Execute() { try { Form1->Run(); } catch(Exception *ex)
C++ Можно ли в массив чаров считать строку полностью? У меня получается считать только первое слово, понимаю что есть функция getline() и еще я какую-то похожую видел, но желательно без этих средств обойтись, как-то бы компилятор убедить в массив считывать пока до конца введенной строчки не доползет.... #include <iostream> int main(){ char qip; std::cin>>qip; for(char* q=qip;((q!=qip+100)&&(*q!='\0'));++q){std::cout<<*q;}... подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
12.09.2012, 16:51
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
#include <iostream>
#include <string>
#include <vector>
#include <cstring>
 
// Вот так старайтесь поменьше делать. Это дурной тон:
// выделять память в одном месте и удалять в другом.
// Но если аккуратно, то можно.
char* new_flattened(const std::vector<std::string> &vec)
{
  size_t length = 1;
  for (size_t i = 0; i < vec.size(); ++i) {
    length += vec[i].size();
  }
  char *data = new char[length];
  { char *pos = data;
    for (size_t i = 0; i < vec.size(); ++i) {
      memcpy(pos, vec[i].c_str(), vec[i].size());
      pos += vec[i].size();
    }
  }
  data[length - 1] = '\0';
  return data;
}
 
int main()
{
  std::vector<std::string> puppy;
  puppy.push_back("A");
  puppy.push_back("BC");
  puppy.push_back("DEF");
  puppy.push_back(" ");
  puppy.push_back("OMG");
  
  char *array = new_flattened(puppy);
  std::cout << array;
  delete [] array;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru