Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Как посчитать колличество чисел в строке через С++??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 01:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Цисла в строке (C++):

Найти число пробелов в строке и заменить их на номер по порядку в исходной строке - C++
Задание: Во введенной пользователем строке найти число пробелов и заменить все пробелы на их номер по порядкув исходной строке. Например...

Найти все цифры в строке. каждую цифру напечатать в отдельной строке - C++
Помогите пожалуйста

Работа с массивами. Поиск наименьшего числа в строке и наибольшего в строке - C++
Добрый вечер. Надо найти наименьшее число в строке и наибольшее в столбце. Примерно вот так должно искать. потом надо собрать новый...

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

В каждой строке матрицы найти и вывести минимальный элемент и его номер в строке - C++
/*Дана матрица А. В каждой строке матрицы найти и вывести минимальный элемент и его номер в строке. Вывести полученную матрицу.*/ ...

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

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

Добавлено через 3 минуты
ой...опечатка в названии темы))
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 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 - одно число
1
протест
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 20
21.05.2011, 23:41  [ТС] #5
спасибо большое) все работает)
0
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;
}
2
протест
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 тоже(((
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
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;
}
2
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);
1
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.05.2011, 00:24 #10
Разве не
C++
1
cin.getline(str, 256);
?
2
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);
1
протест
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;
}
вроде так все работает как надо)
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
22.05.2011, 00:34 #13
протест, мы просто предлагаем разные варианты.
0
протест
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 20
22.05.2011, 00:36  [ТС] #14
да я понял, спасибо больше...щас вот и ваши подставляю, смотрю, учусь и запоминаю
0
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;
}
1
22.05.2011, 00:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2011, 00:46
Привет! Вот еще темы с ответами:

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

Дан двумерный массив. найти количество элементов в каждой строке, меньших диагонального в этой строке - C++
1.Сформировать квадратную матрицу 000001 000020 000300 0n-10000 n00000 2.Дан двумерный массив. найти количество элементов в...

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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