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

Сложение строк - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
21.08.2012, 15:41     Сложение строк #1
смысл программы: вводим с клавиатуры строки....они запихиваются в вектор, когда мы прекращаем ввод они суммируются алгоритмом accumulate() и выводятся на екран как одна строка.....проблема в том, что на экран выводится не сумма строк, последняя, которую мы ввели!!!!
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<vector>
#include<numeric>
#include<string>
using namespace std;
 
int main() 
{   
   string buff, sum("");
   vector<string> t;
   while(cin>>buff);
   t.push_back(buff);
   cout<< endl << endl;
   cout<< accumulate(t.begin(), t.end(), sum) << endl;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mysnk
 Аватар для mysnk
22 / 21 / 3
Регистрация: 09.06.2011
Сообщений: 76
21.08.2012, 15:46     Сложение строк #2
while(cin>>buff);
уберите точку с запятой
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
21.08.2012, 15:46     Сложение строк #3
Хулиган,
C++
1
while(cin>>buff);
Лишняя точка с запятой.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.08.2012, 15:46     Сложение строк #4
на пробелах и отсупах не экономь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include <numeric>
#include <string>
 
int main() 
{   
   std::string buff, sum;
   std::vector<std::string> t;
 
   while(std::cin >> buff)//;
       t.push_back(buff);
 
   std::cout << std::endl << std::endl << std::accumulate(t.begin(), t.end(), sum) << std::endl;
}
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
21.08.2012, 15:53  [ТС]     Сложение строк #5
Цитата Сообщение от Jupiter Посмотреть сообщение
на пробелах и отсупах не экономь
ещё вопрос по поводу пробелов: если я налеплю пробелов(где то меньше где то больше) мне никто не скажет фууу понаставил кучу пробелов?))они не влияют на память?

Добавлено через 36 секунд
спс за помощь))
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
21.08.2012, 15:54     Сложение строк #6
Цитата Сообщение от Хулиган Посмотреть сообщение
они не влияют на память?
Не влияют. Хорошенько подумайте перед тем, как задать подобный вопрос.
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
21.08.2012, 15:56  [ТС]     Сложение строк #7
Цитата Сообщение от Mиxaил Посмотреть сообщение
Не влияют. Хорошенько подумайте перед тем, как задать подобный вопрос.
та я уже понял всю глупость своего вопроса)
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.08.2012, 15:58     Сложение строк #8
Цитата Сообщение от Хулиган Посмотреть сообщение
они не влияют на память?
один пробел - это один байт исходника! не бинарника
а что эти байты на наши терабайты!?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2015, 13:40     Сложение строк
Еще ссылки по теме:

Сложение двух строк C++
C++ Сложение двух строк
Сложение разреженных матриц в схеме CSR / CRS / Метод разряженных строк / Схема Чанга и Густавсона C++

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

Или воспользуйтесь поиском по форуму:
System16v
 Аватар для System16v
3 / 3 / 0
Регистрация: 19.02.2014
Сообщений: 115
22.04.2015, 13:40     Сложение строк #9
Подскажите,почему при попытке присоединения к строке одного первого символа,прибавляется какая та хрень?
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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#include <math>
#include <cstdlib>
#include <iomanip>
 
using namespace std;
 
void article(char *[]);
 
int main()
{
 srand(time(0));
 
 int const size=250;
 char *array=new char[size];
 
 article(&array);
 
 cout << array;
 cout << endl;
 system("pause");
 return 0;
}
void article(char *w1[])
{
  char *ar[]={"their about onetuch something where"};
 
  w1[0]=strtok(ar[0]," ");
  strcat(w1[0]," - ");
  strcat(w1[0],&w1[0][0]); // нужно присоединить 1ый символ 1го слова
}
А он присоединяет весь массив еще раз,плюс еще отдельные символы остальных слов.Как сделать чтоб именно 1ый символ прибавлялся? Пытался убрать прибавления без адреса,выдает ошибку.

Добавлено через 12 минут
Даже просто не могу понять че за ерунда.Когда просто пытаюсь прибавить к массиву самого себя
C++
1
strcat(w1[0],w1[0]);
- он прибавляет еще часть массива ar,почему?

Добавлено через 23 минуты
И еще интересно,если написать так
C++
1
2
3
w1[0]=strtok(ar[0]," ");
  strcat(w1[0]," - ");
  strcat(w1[0],&w1[0][5]);
то выводит правильно "their - -",а если указывать любой другой символ,выводит скопированый символ + непонятную часть массива ar. Да что ж такое , подскажите плз.Что не так?
Yandex
Объявления
22.04.2015, 13:40     Сложение строк
Ответ Создать тему
Опции темы

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