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

синтаксис - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Сергей 61
0 / 0 / 0
Регистрация: 06.04.2013
Сообщений: 51
08.12.2013, 15:47     синтаксис #1
Только начали изучать С++. До этого писали на Pascal в Lazarus и Delphi. Подскажите, пожалуйста, как правильно задать промежуток в C++, например, '0'..'9'?.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 15:47     синтаксис
Посмотрите здесь:

C++ Синтаксис
Конструкторы. синтаксис C++
Непонятен синтаксис C++
Синтаксис C++
C++ Синтаксис языка с++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
08.12.2013, 15:48     синтаксис #2
если вы про цикл то
C++
1
for(i=0; i<9;i++)
Сергей 61
0 / 0 / 0
Регистрация: 06.04.2013
Сообщений: 51
08.12.2013, 15:53  [ТС]     синтаксис #3
нет, не цикл. На Pascal это было бы так: case <переменная> of
'0'..'9': ;
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
08.12.2013, 15:55     синтаксис #4
Хм...небыло такого в с++. Напишите задачу которая перед вами стоит. (Конкретный пример).
Сергей 61
0 / 0 / 0
Регистрация: 06.04.2013
Сообщений: 51
08.12.2013, 15:57  [ТС]     синтаксис #5
1. Дано 2 символа. (Char). Сколько из них цифр.
#include <iostream>

using namespace std;

int main()
{
char a,b; int kol=0;
cout << "Enter the fist symbol or number ";
cin >>a;
cout <<"Enter the second symbol or number ";
cin >>b;
if (a>=0&&a<=9)++kol;
if (b>=0&&b<=9)++kol;
cout <<"kol="<<kol;
return 0;
}
Я написал так, но количество пишет 0. Поэтому думал написать через промежуток.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.12.2013, 16:01     синтаксис #6
C++
1
2
if (a >= '0' && a <= '9')++kol;
if (b >= '0' && b <= '9')++kol;
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
08.12.2013, 16:01     синтаксис #7
Сергей 61, Меняйте то что вам нужно в цикле где переменная будет меняться от 0 до 9. Т.к. пол года почти связываю свою учебу с С++, но никаких промежутков не слышал не разу. Они бы здорово приголились конечно.
lpvoid
 Аватар для lpvoid
318 / 301 / 17
Регистрация: 06.03.2013
Сообщений: 869
08.12.2013, 16:04     синтаксис #8
Сергей 61, финт ушами:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
 
int main() {
    std::string a;
    int count = 0;
    std::cin >> a;
 
    std::for_each(a.begin(), a.end(), [&count](char c) {
        if (isdigit(c))
            count++;
    });
 
    std::cout << count << std::endl;
}
Добавлено через 29 секунд
Relike, нет промежутков в с++.
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
08.12.2013, 16:04     синтаксис #9
lpvoid, Я знал!
lpvoid
 Аватар для lpvoid
318 / 301 / 17
Регистрация: 06.03.2013
Сообщений: 869
08.12.2013, 16:05     синтаксис #10
по-человечески итераторами:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
 
int main() {
    std::string a;
    int count = 0;
    std::cin >> a;
 
    for (std::string::iterator i = a.begin(); i < a.end(); i++) {
        if (isdigit(*i))
            count++;
    }
 
    std::cout << count << std::endl;
}
Сергей 61
0 / 0 / 0
Регистрация: 06.04.2013
Сообщений: 51
08.12.2013, 16:07  [ТС]     синтаксис #11
aslav22, спасибо, заработало.
lpvoid
 Аватар для lpvoid
318 / 301 / 17
Регистрация: 06.03.2013
Сообщений: 869
08.12.2013, 16:07     синтаксис #12
хотя промежутки можно заменить так:
C++
1
if(i >= 0 && i <= 30) { /* ... */ }
будет аналогично:
Delphi
1
2
if i in 0..30 then begin
(* ... *)
Сергей 61
0 / 0 / 0
Регистрация: 06.04.2013
Сообщений: 51
08.12.2013, 16:10  [ТС]     синтаксис #13
До этого я еще в C++ не дошел)), но все равно, спасибо!
HidForce
54 / 54 / 13
Регистрация: 17.11.2012
Сообщений: 1,107
08.12.2013, 16:12     синтаксис #14
Сергей 61, еще возможен такой вариант
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
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    char Symbols[2];
    char Numbers[10] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
    int Num = 0;
 
    cout << "Введите два символа: " << endl;
    for (int i = 0; i < 2; i++)
        cin >> Symbols[i];
 
    for (int i = 0; i < 2; i++)
        for (int j = 0; j < 10; j++)
        {
            if (Symbols[i] == Numbers[j])
                Num++;
        }
 
    cout << "Количество цифр: " << Num << endl;
 
    return 0;
}
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
08.12.2013, 16:14     синтаксис #15
С промежутками жаль, но cctype тащит
lpvoid
08.12.2013, 16:19
  #16

Не по теме:

в с++11 помимо лямбд появились еще и регексы, так что вот, еще более изощренный оверинжиниринг:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <regex>
 
int main() {
    std::string a;
    std::cin >> a;
 
    std::regex digits("\\d");
    auto begin = std::sregex_iterator(a.begin(), a.end(), digits);
    auto end = std::sregex_iterator();
 
    std::cout << std::distance(begin, end) << std::endl;
}
и все равно регексы из Qt мне нравятся больше

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2013, 16:21     синтаксис
Еще ссылки по теме:

C++ синтаксис в операторах while и do while
C++ Новый синтаксис using в C++11
Неправильный синтаксис? C++

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

Или воспользуйтесь поиском по форуму:
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
08.12.2013, 16:21     синтаксис #17
Не по теме:
Помогите найти ошибку в программе Найти минимальное расстояние от точки до точки .
Yandex
Объявления
08.12.2013, 16:21     синтаксис
Ответ Создать тему
Опции темы

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