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

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

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

Цисла в строке - C++

21.05.2011, 01:27. Просмотров 625. Ответов 18
Метки нет (Все метки)

Народ, подскажите

Как посчитать колличество чисел в строке через С++??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 01:27     Цисла в строке
Посмотрите здесь:

В строке заменить каждый символ «!» числом, равным индексу этого символа в строке - C++
В заданной строке заменить каждый символ «!» числом, равным индексу этого символа в строке. Сделал просто замену символа на любой ...

Поменять местами наибольший элемент в первой строке матрицы с наименьшим элементом в третьей строке - C++
В двумерном массив заменить местами наибольший элемент в первой строчке с наименьшим элементом в третьем

В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд). - C++
В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).

Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. - C++
а если не сложно то можно функцию

Если минимальный элемент матрицы стоит в первой строке, то элементы, стоящие в строке за ним, заменить нулями - C++
Задана матрица С(5,5). Если минимальный элемент стоит в первой строке, то все элементы стоящие в строке за ним, заменить нулями. Какие...

Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке - C++
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить последнее вхождение символа “р” в строке и вывести строку, начиная с...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.05.2011, 01:31     Цисла в строке #2
проходишь по строке с поверкой isdigit(str[i]);
протест
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 20
21.05.2011, 01:53  [ТС]     Цисла в строке #3
а он разве не возвращает истину или лож в зависимсти от того цифра или нет? мне нужно колличество самих чисел, а не цифр

Добавлено через 3 минуты
ой...опечатка в названии темы))
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.05.2011, 02:13     Цисла в строке #4
как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstring>
 
int main()
{
    const char * str = "ghjjh00fghj12abcdef239ghfghjkl8vgj6900fghjklghj789hjk";
    int counter(0);
    for(unsigned i = 0; i < strlen(str); i++)
    {
    if(isdigit(str[i]))
    {
        int j = ++i;
        while(isdigit(str[j++]));
                   i = j;
        counter++;
    }
    }
    std::cout << counter;
    return 0;
}
Добавлено через 1 минуту
c учетом что 00 - одно число
протест
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 20
21.05.2011, 23:41  [ТС]     Цисла в строке #5
спасибо большое) все работает)
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
22.05.2011, 00:01     Цисла в строке #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <boost/regex.hpp>
#include <string>
 
int main()
{
   std::string str("aada1231fgf345dfgd3453");
   boost::smatch res;
   std::string::const_iterator start = str.begin();
   std::string::const_iterator end= str.end();
   size_t cnt=0;
   while( boost::regex_search(start, end, res, boost::regex("\\d+")) )
   {
     cnt++;
     start= res[0].second;
   }
   std::cout<<"count: "<<cnt<<std::endl;
}
протест
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 20
22.05.2011, 00:12  [ТС]     Цисла в строке #7
еще 1 вопрос...все время забываю....как сделать ввод строки str с клавы?

C++
1
2
3
4
5
6
int main()
{
char str;
cout << "vvedite stroky" << endl;
getline (cin,str);
    int counter(0);
вот так выдает ошибку...и если str типа string тоже(((
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.05.2011, 00:17     Цисла в строке #8
Еще вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <functional>
#include <sstream>
#include <algorithm>
#include <string>
#include <cctype>
 
int main(){
  std::string str("aada1231fgf345dfgd3453");
  std::replace_if(str.begin(), str.end(), std::not1(std::ptr_fun(isdigit)), ' ');
  std::istringstream ist(str);
  size_t cnt = 0;
  for(; ist >> str; ++cnt);
  std::cout << "count: " << cnt << std::endl;
  return 0;
}
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
22.05.2011, 00:22     Цисла в строке #9
протест,
C++
1
2
3
4
5
int main()
{
char str[256];
cout << "vvedite stroky" << endl;
getline (cin,str);
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.05.2011, 00:24     Цисла в строке #10
Разве не
C++
1
cin.getline(str, 256);
?
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
22.05.2011, 00:26     Цисла в строке #11
asics, да
или
C++
1
2
3
string str;
cout << "vvedite stroky" << endl;
getline (cin,str);
протест
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 20
22.05.2011, 00:32  [ТС]     Цисла в строке #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstring>
 using namespace std;
 
int main()
{
string str;
cout << "vvedite stroky" << endl;
getline (cin,str);
    int counter=0;
        for(unsigned i = 0; i < str.length(); i++)
    {
        if(isdigit(str[i]))
        {
            int j = ++i;
            while(isdigit(str[j++]));
                   i = j;
            counter++;
        }
    }
    cout << counter;
    return 0;
}
вроде так все работает как надо)
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
22.05.2011, 00:34     Цисла в строке #13
протест, мы просто предлагаем разные варианты.
протест
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 20
22.05.2011, 00:36  [ТС]     Цисла в строке #14
да я понял, спасибо больше...щас вот и ваши подставляю, смотрю, учусь и запоминаю
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
22.05.2011, 00:46     Цисла в строке #15
Еще вариант:
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
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
   bool digit = false;
   size_t cnt = 0;
   string s="sdfsd2423sdf2423sdfs3534";
   for(auto c : s)
   {
      if(isdigit(c))
      {
         if(!digit)
            cnt++;
         digit=true;
      }
      else
         digit=false;
      
   }   
   cout<<cnt;
}
протест
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 20
22.05.2011, 00:59  [ТС]     Цисла в строке #16
хм....если я правильно понял то он считает истины и их сумирует, а каждая истина - число?
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
22.05.2011, 01:01     Цисла в строке #17
протест, он не суммирует истины. didit принимает значение истина, если символ число, и ложь, если не число.
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
22.05.2011, 01:18     Цисла в строке #18
Цитата Сообщение от gooseim Посмотреть сообщение
Еще вариант:
gooseim, чем компилили? g++ ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2011, 07:41     Цисла в строке
Еще ссылки по теме:

Выяснить, есть ли в данной строке кома, после которой дальше в строке есть тире - C++
Дана строка s. a) Выяснить, есть ли в данной строке кома, после которой дальше в строке есть тире; b) Найти первую по порядку...

найти номер максимального цисла - Pascal
люди помогите пожалуйста нужно создать целочисленный массив потом найти в нем номер последнего максимального элемента (если он один или...

В строке S записаны слова исходного текста, в отдельной строке S1- одно из слов, которое может быть в строке S (количество букв в S1 не превышает 10) - Turbo Pascal
В строке S записаны слова исходного текста, в отдельной строке S1 - одно из слов, которое может быть в строке S (количество букв в S1 ...

определить на какой строке находится минимальный элемент из максимальных на каждой строке - Pascal
дан массив М(n,k). определить на какой строке находится минимальный элемент из максимальных на каждой строке


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

Или воспользуйтесь поиском по форуму:
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
22.05.2011, 07:41     Цисла в строке #19
Maxwe11, онлайн-компилятором http://liveworkspace.org

Добавлено через 1 минуту
А сам он на серваке я думаю как раз g++.
Yandex
Объявления
22.05.2011, 07:41     Цисла в строке
Ответ Создать тему
Опции темы

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