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

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

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

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

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

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

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

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

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

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

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

Функция, возвращающая ссылку - C++
Помогите исправить функцию, которая возвращает ссылку на массив size_t Crd() { size_t crd; return &crd; }

Функция возвращающая K-е слово строки - C++
Описать функцию WordK(S, K) строкового типа, возвращающую K-е слово строки S (словом считается набор символов, не содержащий пробелов и...

Функция, возвращающая объект класса - C++
Всем доброго времени суток. Хотел бы узнать правильное описание функции возвращающей объект класса. У меня есть class Matches {} ...

Функция, возвращающая экземпляр класса - C++
Доброго времени суток. Допустим есть у нас функция, результатом которой является некий объект: MyClass* func() { ... ...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Harlequin
41 / 41 / 4
Регистрация: 08.11.2009
Сообщений: 167
09.12.2009, 13:41     Функция, анализирующая строку и возвращающая число #2
используй функции atoi, atof и хелп в помощь
Gravity
562 / 556 / 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;
}
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
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);
}

Не по теме:

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

Yandex
Объявления
09.12.2009, 15:21     Функция, анализирующая строку и возвращающая число
Ответ Создать тему
Опции темы

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