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

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

Войти
Регистрация
Восстановить пароль
 
Alinochka
3 / 3 / 1
Регистрация: 06.12.2009
Сообщений: 46
#1

Функция, анализирующая строку и возвращающая число - C++

09.12.2009, 12:01. Просмотров 497. Ответов 3

Как не читала и не пробовала эту прогу реализовать никак не получается...
Написать функцию, которая анализирует заданную строку и возвращает:
· 1, если строка представляет собой запись целого числа;
· 2 — если вещественного числа (с ненулевой дробной частью);
· 0 - если строку нельзя преобразовать в число;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2009, 12:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция, анализирующая строку и возвращающая число (C++):

Функция возвращающая абсолютное разницу первого и второго параметров и функция типа int, возвращающая минимальное из трех целых чисел - C++
Разработать заданные согласно условия функции и сделать в главной программе по два вызова этих функций с различными параметрами. Для...

Функция, возвращающая k-ю строку текстового файла - C++
*/ Описать функцию getLine(Name,k) строкового типа, возвращающую k-ю строку текстового файла с именем Name (строки нумеруются от 0). Если...

Функция возвращающая случайное число - C++
Нужна функция Возвращающая случайное число из диапазона который я задам например от 13 до 25. Ещё важно чтобы число не повторялось дважды.

Функция возвращающая число с обратным порядком цифр - C++
Нужно написать функцию, которая воспринимает целое значение и возвращает число с обратным порядком цифр. Моя программа почему-то выводит...

Функция, возвращающая число, полученное из целого числа - C++
Выдали задание, но я не могу разобратся в логической цепочки . Не могу понять как написать ее правильно.Кто может напишите=)) ...

Функция, возвращающая номер самого правого вхождения заданного символа во введенную строку - C++
Нужна помощь в составлении программы: возвращающую номер самого правого вхождения заданного символа во введенную строку. Если символ не...

3
Harlequin
41 / 41 / 4
Регистрация: 08.11.2009
Сообщений: 167
09.12.2009, 13:41 #2
используй функции atoi, atof и хелп в помощь
0
Gravity
564 / 558 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
09.12.2009, 15:02 #3
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h>
#include <ctype.h>
 
int fnc(char *s)
{
    int i, ret = 0;
    char *p = s;
    
    while(*p == ' ' || *p == '\t')
        p++;
    if(*p == '-' || *p == '+')
        p++;
    
    if(!isdigit(*p) && *p != '.')
        return 0;
       
    if(isdigit(*p)) {
        while(isdigit(*p))
            p++;
        ret = 1;
    }
 
    if(*p++ == '.') {
        if(isdigit(*p) && *p != '0') {
            while(isdigit(*p))
                p++;
            ret = 2;
        }
    }
    return ret;
}
 
int main(void)
{
    char s[4096];
    int ret;
 
    printf("Введите строку: ");
    if(fgets(s, sizeof(s), stdin) == NULL || *s == '\n')
        return 1;
    
    switch(ret = fnc(s)) {
        case 1:
            printf("Строка представляет собой запись целого числа.\n");
            break;
        case 2:
            printf("Строка представляет собой запись вещественного числа.\n");
            break;
        case 0:
            printf("Строку нельзя преобразовать в число.\n");
            break;
    }
    return 0;
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9700 / 5650 / 964
Регистрация: 25.07.2009
Сообщений: 10,873
09.12.2009, 15:21 #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
 
typedef enum { NOT_NUMBER, IS_INT, IS_FLOAT } test_t;
 
test_t testStr(const char *s){
    int point_flag = 0;
    
    if ( !s || !*s )
        return NOT_NUMBER;
    while ( isspace(*s) )
        s++;    
    if ( *s == '-' || *s == '+' )
        s++;
    if ( !*s )
        return NOT_NUMBER;
    while ( *s && !isspace(*s) ){
        if ( *s == '.' ){
            if ( point_flag )
                return NOT_NUMBER;
            else
                point_flag = 1;
        }
        else if ( !isdigit(*s) ){
            return NOT_NUMBER;
        }
        s++;
    }
 
    return ( point_flag ) ? IS_FLOAT : IS_INT;
}
 
int main(void){
    char buf[BUFSIZ];
    test_t t;
    
    while ( 1 ){
        printf("Enter value (just enter - exit): ");
        if ( ! fgets(buf, BUFSIZ, stdin) ){
            fprintf(stderr, "Bad string input!\n");
            exit(1);
        }
        if ( *buf == '\n' )
            break;
        t = testStr(buf);
        switch ( t ) {
            case NOT_NUMBER :
                printf("There no any integer or floating point number! - %s\n", buf);
                break;
            case IS_INT :
                printf("Looks like a integer value - %s\n", buf);
                break;
            case IS_FLOAT :
                printf("Looks like a floating point value - %s\n", buf);
                break;
            default :
                printf("Shit happens!\n");
                break;
        }
    }
    
    exit(0);
}

Не по теме:

Старею что-ли?..

1
09.12.2009, 15:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2009, 15:21
Привет! Вот еще темы с ответами:

Функция, возвращающая vector - C++
Решил реализовать шарповскую String.Split(). Она должна возвращать vector&lt;string&gt;, следовательно либо для него надо выделять место в...

Функция возвращающая константу - C++
Почему добавление спецификатора const ничего не меняет? const int f(int a) { return a; } int main(int argc, char *argv)...

Функция, возвращающая указатель - C++
Здравствуйте. Пускай есть класс Some_type и массив такого класса. Можно ли функцией Some_type* some_name (some_type) заполнять массив,...

Функция, возвращающая указатель - C++
Добрый вечер. Требуется написать программу, содержащую структуру вида type1 *имя(type2); т.е. функцию, которая принимает аргумент типа...


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

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

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