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

Строки. Выделить подстроку, которая соответствует записи целого числа. - C++

Восстановить пароль Регистрация
 
ice_man
12 / 5 / 1
Регистрация: 13.02.2011
Сообщений: 50
13.04.2012, 15:21     Строки. Выделить подстроку, которая соответствует записи целого числа. #1
Дана строка, состоящая из букв, цифр, запятых, точек, знаков "+" и "-". Выделить подстроку, которая соответствует записи целого числа (т.е. начинается со знака "+" или "-" и внутри которой нет букв, запятых и точек).

Написать нужно на билдере, рад студио значения особо не имеет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char st[20],st2;
char stc[11]="0123456789",otv[100];
char *s=NULL;
int n=0;
strcpy(st,Edit1->Text.c_str());
    for (int i=0;st[i]!='0';i++)
    {s=strchr(stc,st[i]);
    if (s!=NULL)
    {n++;otv[n-1]=st[i];otv[n]='\0';}}
Edit2->Text=otv;
}
Поиск юзал, ничего толкового не нашел.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2012, 15:21     Строки. Выделить подстроку, которая соответствует записи целого числа.
Посмотрите здесь:

Из строки выделить подстроку длиной n символов, начиная с заданой позиции C++
Выделить подстроку, которая соответствует записи целого числа C++
Дана строка, состоящая из букв, цифр, запятых, точек, знаков «+» и «–». Выделить подстроку, которая соответствует записи целого числа. C++
Дана строка символов, состоящая из букв, цифр, запятых, точек, знаков «+» и «–». Выделить подстроку, которая соответствует записи вещественного числа C++
C++ Выделить подстроку, которая соответствует записи вещественного числа с плавающей точкой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
13.04.2012, 16:05     Строки. Выделить подстроку, которая соответствует записи целого числа. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
char st[20];
otv[20] = {0};//здесь храним результат
bool beginOfNumber = true;
strcpy(st,Edit1->Text.c_str());
    for(int i=0;st[i]!='\0';i++)
    {
    if(isdigit(st[i]))//если цифра
    {
        if(beginOfNumber)//если до этого мы не записывали цифры
        {
        if(i != 0 && (st[i-1] == '+' || st[i-1] == '-'))
            {
                otv[i] = st[i];
                beginOfNumber = false;
            }
        }
        else//если мы записывали цифры,то продолжаем это делать
            otv[i] = st[i];
    }
    else
        beginOfNumber = true;
    }
ice_man
12 / 5 / 1
Регистрация: 13.02.2011
Сообщений: 50
13.04.2012, 17:23  [ТС]     Строки. Выделить подстроку, которая соответствует записи целого числа. #3
alexey31415, спасибо! Но сделал по другому =)
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
13.04.2012, 19:29     Строки. Выделить подстроку, которая соответствует записи целого числа. #4
для интереса,выложи код,который ты сделал
Yandex
Объявления
13.04.2012, 19:29     Строки. Выделить подстроку, которая соответствует записи целого числа.
Ответ Создать тему
Опции темы

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