Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   посчитать количество символов без пробела (http://forum.oszone.net/showthread.php?t=139181)

ShadowMas 02-05-2009 23:51 1109390

посчитать количество символов без пробела
 
Снова обращаюсь к вам так как подходящего самоучителя по данной теме не нашёл!

Странно как то но не могу найти достаточьно полного руководства с примерами по типу данных string и char

Описано как то в кратце всё?

Если можно покажите на примере такую задачу:

(И отдельная просьба можно нормальный самоучитель с примерами где освещена эта тема!!!!Пользовался такими справками для новичьков:
"Учимся программировать на языке C++.chm","Справочное руководство по C++.chm",С++Бархaтный путь.chm,"Бьярн Страуструп введение в язык С++.chm")

Дано предложение, посчитать количество символов без пробелов.

ShadowMas 03-05-2009 08:49 1109495

Спасибо за код и за совет, теперь есть пример и направление буду разбираться! :)

pva 04-05-2009 07:13 1110157

Используя шаблоны C++:
Код:

// #include <string>
// using namespace std;
string data = "sdfds dsff safda d  asd  ads";
unsigned result;

// первый вариант (самый простой)
// #include <functional>
// using namespace std;
result =  data.size() - count(data.begin(), data.end(), ' ');

// второй (то, что .::.DIMA.::. предложил)
// #include <functional>
// #include <algorithm>
// using namespace std;
result =  count_if(data.begin(), data.end(), bind1st(not_equal_to<char>(), ' '));

описание функциональных классов есть в хелпе от борланда. Если что непонятно - спрашивай, объяснить не обломно :)

AlexTNT 05-05-2009 17:39 1111380

ShadowMas, .::.DIMA.::., можно программку немножко по мощнее сделать. Вот пример:
Код:

#include <iostream>
#include<cstdlib>
using namespace std; 
int main ()
{       
 char c;                         
 int i=0;       
          cout << "Введите строку\n";       
                  while(cin.get(c)&&c!='\n')             
                          if(c!=' ')                 
                              i++;               
          cout<<"Кол-во символов без пробелов:"<<i<<'\n';   
        system("PAUSE");       
        return 0;
}


pva 07-05-2009 07:27 1112556

...с использованием алгоритмов:
Код:

// правда этот вариант читает поток до конца, а не до конца строки
typedef istreambuf_iterator<char> tmp_iter_t;
result = count_if(tmp_iter_t(cin), tmp_iter_t(), bind1st(not_equal_to<char>(), ' '));


ShadowMas 07-05-2009 10:51 1112662

ОГРОМНОЕ ВАМ СПАСИБО!!!

Ато я прям таки уже потерялся :) не как не мог найти учебник с нормальными примерами...

Вот теперь понятно! Будет от чего отталкиваться :up


Время: 12:11.

Время: 12:11.
© OSzone.net 2001-