Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Erik_5
0 / 0 / 0
Регистрация: 11.09.2014
Сообщений: 3
#1

Проанализировать строку на наличие числа - C++

11.09.2014, 17:51. Просмотров 494. Ответов 9
Метки нет (Все метки)

Дана строка. Если она представляет собой запись целого числа, то вывести 1, если вещественного (с дробной частью) — вывести 2; если строку нельзя преобразовать в число, то вывести 0. Считать, что дробная часть вещественного числа отделяется от его целой части десятичной точкой «.».
Помогите на С++, искал так и не нашел подходящей темы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2014, 17:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проанализировать строку на наличие числа (C++):

Как проверить строку на наличие табуляций?
Собственно, как проверить char строку на наличие табуляции? Пробовал так, не...

Проверить строку на наличие только букв
Добрый вечер. Подскажите, пожалуйста, как проверить строку на наличие только...

Проверить строку на наличие русских букв
Задача такова... Нужно создать функцию, которая определяет, есть ли в строке...

Проверить одну строку на наличие в ней слова из второй строки
Программа просит ввести строку №1 и строку №2. Первая строка больше второй....

Ввести строку символов а)вручную, б)из файла и проверить ее на наличие латинских букв
Ни черта не понимаю в работе со строками, прошу помощи у данного форума Нужно:...

Ввести в программу строку (числа, латиница), считать только числа, записать числа в массив
Нужна помощь! Срочно! Нужно ввести в программу строку (числа, латиница),...

9
Тамика
Котовчанин
918 / 462 / 195
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
11.09.2014, 17:54 #2
Переводите число в строку и посимвольно проверяете.
1
Erik_5
0 / 0 / 0
Регистрация: 11.09.2014
Сообщений: 3
11.09.2014, 17:56  [ТС] #3
Я просто не очень разбираюсь в программирование
0
Тамика
Котовчанин
918 / 462 / 195
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
11.09.2014, 18:01 #4
Если вкратце.
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>
#include <sstream>
#include <string>
 
int main() 
{ 
    float n;
    std::cin >> n;
    std::stringstream ss;
    ss << n;
    std::string str;
    ss >> str;
 
    bool fl = false;
    for (int i = 0; i < str.size(); ++i)
        if (str[i] == '.') 
            {
                std::cout << "\n1";
                fl = true;
                break;
            }
 
    if (fl == false)
        std::cout << "\n2";
 
    system("pause>>null");
}
1
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.09.2014, 18:05 #5
Цитата Сообщение от Тамика Посмотреть сообщение
Переводите число в строку
...
Цитата Сообщение от Erik_5 Посмотреть сообщение
Дана строка.
0
zss
Модератор
Эксперт С++
6959 / 6521 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
11.09.2014, 18:20 #6
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 <strstream> 
using namespace std;
int main() 
{ 
    char str[32];
    cin>>str;
    istrstream si(str,32);
    int i;char c;
    si>>i>>c;
    if(c=='.')
    {
        istrstream sf(str,32);
        float f;
        sf>>f;
        cout<<"FLOAT "<<f<<endl;
    }else if(si)
    {
        cout<<"INT "<<i<<endl;
    }else
        cout<<"NOT NUMBER\n";
    system("pause");
    return 0; 
}
0
Тамика
Котовчанин
918 / 462 / 195
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
11.09.2014, 18:22 #7
Если ввести строку и с символами и с числами - итог неверен.
0
Boleon
Guardian of Asgaard
373 / 316 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
Завершенные тесты: 1
11.09.2014, 18:33 #8
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
#include <iostream>
 
int main() {
    std::string value;
    int flag = 0;
 
    std::cin >> value;
 
    for ( int i = 0; value[i] != '\0'; i++ ) {
        if ( ( value[i] != '.' && value[i] < '0' ) || value[i] > '9') {
            std::cout << "0" << std::endl;
            return 0;
        }
        if ( value[i] == '.' ) {
            flag = 1;
        }
    }
    if ( flag == 1 ) {
        std::cout << "2" << std::endl;
    } else {
        std::cout << "1" << std::endl;
    }
 
    return 0;
}
Добавлено через 8 минут
zss, у вас при вводе "123.2asd" результат FLOAT
0
zss
Модератор
Эксперт С++
6959 / 6521 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
11.09.2014, 18:35 #9
Та
Цитата Сообщение от Darkrduk Посмотреть сообщение
при вводе "123.2asd" результат FLOAT
Так это и правильно.
Целая часть - есть.
Точка после целой части - есть.
Чего же ещё?
0
Boleon
Guardian of Asgaard
373 / 316 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
Завершенные тесты: 1
11.09.2014, 19:00 #10
Как вариант, если "123.12qwerty" и "123........123" являются "строковыми":
Кликните здесь для просмотра всего текста

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
#include <iostream>
 
int main() {
    std::string value;
    int flag = 0;
 
    std::cin >> value;
 
    for ( int i = 0; value[i] != '\0'; i++ ) {
        if ( ( value[i] != '.' && value[i] < '0' ) || value[i] > '9' || flag > 1 ) {
            std::cout << "0" << std::endl;
            return 0;
        }
        if ( value[i] == '.' ) {
            flag += 1;
        }
    }
    if ( flag == 1 ) {
        std::cout << "2" << std::endl;
    } else {
        std::cout << "1" << std::endl;
    }
 
    return 0;
}
0
11.09.2014, 19:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2014, 19:00
Привет! Вот еще темы с решениями:

Наличие введенной цифры в дробной части числа
Доброго времени суток, уважаемые! Помощь нужна в следующем: Пользователь...

Проверить наличие в десятичном представлении числа заданной цифры
Допустим есть элемент массива ary , как проверить есть ли в этом числе цифра 2...

Преобразовать строку из файла, содержащую запись десятичного числа, в строку с двоичным числом
Дана строка, изображающая десятичную запись целого положительного числа....

Написать функцию целого типа, определяющую наличие в первой строке матрицы наличие седловой точки.
ребят нужна помощь Задачи по программированию. Задача решается на двух...


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

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

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