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

Реализовать функцию распознающею первое целое число в строке - C++

Восстановить пароль Регистрация
 
vukih
Сообщений: n/a
12.06.2013, 12:09     Реализовать функцию распознающею первое целое число в строке #1
Дан заголовок функции и описание входных выходных параметров. Их изменять нельзя. Необходимо реализовать эту функцию.

Собственно сама функция.
Реализовать и использовать функцию, которая распознает первое целое число в строке:

int findInteger( const char str[81], char **end);

Входные данные:
str - исходная строка
Выходные данные:
end – указатель на символ, следующий за целым числом; если целое число не обнаружено, то возвращается NULL
возвращаемое значение - распознанное целое число.
Числом является непрерывная последовательность цифр от разделителя до разделителя. Разделителем является любой символ не относящийся к буквам или цифрам.

Собственно довольно плохо умею работать с указателями и строками, поэтому вконец запутался. Прилагаю сюда же свой косячный недокод. На мой взгляд условия и циклы представляются правильными, тоесть число он найдет, а вот как его правильно вывести ума не приложу. Буду благодарен за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 12:09     Реализовать функцию распознающею первое целое число в строке
Посмотрите здесь:

C++ Передать в функцию целое число. Функция заменяет его на ближайшее простое число, которое больше или меньше исходного. Вернуться в main( ) и распечатат
C++ Составить функцию, которая, получив целое число определяет, уменьшается ли оно в целое число раз
C++ Создайте функцию, которая принимает в качестве аргумента целое число и возвращает число Люка с таким номером
C++ Написать функцию которая определяет кратное ли первое число второму
C++ Напишите функцию, получающую целое число
C++ Написать функцию, которая возвращает указатель на первое вхождение подстроки string2 в строке string1
C++ Найти первое число в строке, возвести его в квадрат и вывести
C++ Реализовать бинарное дерево, каждому ребру которого соответствует целое число

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vukih
Сообщений: n/a
12.06.2013, 12:15     Реализовать функцию распознающею первое целое число в строке #2
код
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// lab8.cpp: определяет точку входа для консольного приложения.
//int findInteger( const char str[81], char **end);
 
//Входные данные:
//str - исходная строка
//Выходные данные:
//end – указатель на символ, следующий за целым числом; если целое число не обнаружено, то возвращается NULL
//возвращаемое значение - распознанное целое число
 
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "tchar.h"
#include "ctype.h"
#include "stdlib.h"
//#include "testing.h"
 
int findInteger(const char str[81], char **end)
{
    int i, razdel, j, c;
    char chislo[81], *endc;
 
    if ((isdigit(str[0]))||((isspace(str[0]))||(ispunct(str[0])))) //задаем начальное значение флага разделителя
        {
            razdel=1;
        }
        else
        {
                razdel=0;
        }
 
    for(i=0; i<81; i++)
    {
        
        if ((razdel)&&(isdigit(str[i]))) // если после разделителя стоит цифра
            {
                
                for (j=i; j<81; j++) // проверяем последующие символы
                {
                    if (isalpha(str[j])) // если буква заканчиваем цикл
                    {
                        j=81;
                        endc=0;
                    }
                    else
                    {
                        if (((!(isalnum(str[j]))))||((j==(80))&&(isdigit(str[j])))) // если разделитель или строка закончилась числом 
                        {
                            
                            for (i; i<j; i++) //цикл выписывания числа от начального до конечного разделителя
                            {
                                chislo[i]=str[i];
                                endc=*str[j];
                                j=81;
                            }
 
                            if ((j==(80))&&(isdigit(str[j]))) // если строка закончилась числом
                            {
                                chislo[j]=str[j];
                                endc=0;
                                j=81;
                            }
                        }
            
                    }
                }
        }
 
    }
    c=atoi(chislo); // преобразуем полученную строку в число
    return (c);         // выводим
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    return(0);
}
Yandex
Объявления
12.06.2013, 12:15     Реализовать функцию распознающею первое целое число в строке
Ответ Создать тему
Опции темы

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