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

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

Войти
Регистрация
Восстановить пароль
 
MadMax952
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 4
#1

Удалить все цифровые символы из строки - C++

18.11.2013, 22:37. Просмотров 216. Ответов 0
Метки нет (Все метки)

Из строки нужно удалить все цифровые символы. Наработки пока такие:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        char* pIn = pTmp;
        char* pOut = pTmp;
        while (*pIn != '\0')
        {
            if (isdigit(*pIn))
                while (isdigit(*pIn) && *pIn)
                {
                    *pOut = *pIn;
                    ++pIn;
                    ++pOut;
                }
            if ( *pIn == '\0')
                break;
            ++pIn;
            ++pOut;
 
        }
        *pOut = '\0';
Алгоритм: при помощи указателя pIn идём по строке. Если символ в строке - не цифра, то переносим его в pOut. Если цифра - просто двигаем указатель pIn дальше.
Но программа выводит неизменённую строку. Помогите, пожалуйста, исправить.
P. S. Вот полный код программы:
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
#include "work_4.h"
 
int main()
{
    char* pTmp;
    char tmp [80];
    do
    {
        cout << "Please, enter string -> " << endl;
        cin.getline (tmp,80);
        pTmp = new char [strlen(tmp)+1];
        strcpy_s (pTmp, strlen(tmp)+1,tmp);
        cout << endl;
        cout << "In string " << amountSpace(tmp) << " words" << endl;
        cout << endl;
        char* pIn = pTmp;
        char* pOut = pTmp;
        while (*pIn != '\0')
        {
            if (isdigit(*pIn))
                while (isdigit(*pIn))
                {
                    *pOut = *pIn;
                    ++pIn;
                    ++pOut;
                }
            if ( *pIn == '\0')
                break;
            ++pIn;
            ++pOut;
 
        }
        *pOut = '\0';
        cout << "The processed string:" << endl;
        cout << pTmp << endl;
        cout << endl;
        delete [] pTmp;
    }while(!(isdigit(tmp[strlen(tmp)-1])));
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 22:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить все цифровые символы из строки (C++):

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

Определить длину строки,удалить из строки все символы, которые равны заданному - C++
Доброго времени суток уважаемые форумчане. Помогите пожалуйста с написанием кода для данной задачи в вижуале. Если будет возможно,то с...

Удалить из строки все повторяющиеся символы - C++
как удалить со строки все повторяющиеся символы???? заранее благодарен!

Удалить из строки все числовые символы - C++
Здравствуйте, помогите, пожалуйста сделайте задач. Пользователь вводит с клавиатуры строка символов. Удалить из строка все числовые...

Удалить из строки s1 все символы, встречающиеся в строке s2. - C++
Удалить из строки s1 все символы, встречающиеся в строке s2 А вот здесь как подсчитать кол-во удаленных символов? Пробовал поставить в...

Удалить из строки все символы не являющиеся латинскими буквами - C++
вести строку символов. удалить из строки все символы не являющиеся латинскими буквами. Измененную строку выдать на экран

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

Удалить из строки все символы, не являющиеся латинскими буквами - C++
Вывести строку символов. Удалить из строки все символы, не являющиеся латинскими буквами. Вывести на экран измененную строку. Заранее...

Удалить со строки все указание символы кроме первого - C++
Дана строка (&quot;This,code,are,working, &quot;), вопрос в том как удалить все комы кроме первой??

Удалить из строки все символы встречающиеся более одного раза - C++
ввести символьную строку удалить из строки все символы встречающиеся более одного раза #include &lt;string.h&gt; #include &lt;conio.h&gt; ...

Строки: удалить все символы, которые размещены между скобками - C++
Помогите пожалуйста. Без понятия как это сделать. Удалить из заданной последовательности все символы которые размещены между скобками...


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

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

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