0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 4
1

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

18.11.2013, 22:37. Показов 382. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2013, 22:37
Ответы с готовыми решениями:

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

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

Удалить из строки все символы ‘+’
Удалить из строки все символы ‘+’. Преобразованную строку вывести на экран.

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2013, 22:37

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

Удалить из строки s1 все символы, встречающиеся в строке s2.
Удалить из строки s1 все символы, встречающиеся в строке s2 А вот здесь как подсчитать кол-во...

Удалить из строки все символы, не являющиеся буквами
1. Дана символьная строка. Удалить из нее все символы не являющиеся буквами.

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru