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

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

Восстановить пароль Регистрация
 
MadMax952
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 4
18.11.2013, 22:37     Удалить все цифровые символы из строки #1
Из строки нужно удалить все цифровые символы. Наработки пока такие:
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 22:37     Удалить все цифровые символы из строки
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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