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

Обработка строк,используя указатели - C++

Восстановить пароль Регистрация
 
Falkon
2 / 2 / 0
Регистрация: 05.11.2012
Сообщений: 10
05.11.2012, 14:38     Обработка строк,используя указатели #1
Здравствуйте. Помогите, пожалуйста, решить задачу. Заранее спасибо.
1)Ввести строку в символьный массив tmp [80].
2)Выделить блок памяти через указатель.
3)Скопировать строку в выделенный блок.
4)Если длина строки чётное число то удалить 2 символа из середины.Если нечётное, то удалить центральный символ.(Обрабатывать строку при помощи указателей внутри выделенного блока памяти. )
5)Вывести результат обработки.
6)Освободить блок.
P.S. Запрещено использовать дополнительные массивы и блоки! (вводить и обрабатывать строки в цикле пока она начинается строчной буквой)
Проблемы начинаются на 4 этапе. Не как не могу понять как при помощи указателей удалить из строки символы.
Без 4 пункта вышел такой код:
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
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
    char tmp [80];
    char* ptr;
 
    do
    {
        cout <<"Enter tmp-> ";
        cin.getline (tmp,80);
        ptr=new char [strlen (tmp)+1];
        strcpy_s (ptr, strlen (tmp)+1, tmp);
        cout <<"\nBefore\t" << ptr << endl;
                         //оброботка строки 4 пункт
        if ((strlen(ptr)+1)%2)
            {
                         }
        else
            {
                         }
        cout <<"After\t" << ptr << endl<<endl;
        delete [] ptr;
    }while (islower(tmp [0]));
    return 0;
}
Прочел все лекции по указателям не помогло. Пожалуйста, помогите написать этот код 4 пункта, очень нужно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2012, 14:38     Обработка строк,используя указатели
Посмотрите здесь:

C++ Проход матрицы используя указатели
C++ указатели и обработка строк.
Обработка двумерных массивов. Указатели. C++
Обработка двумерных массивов. Указатели. C++
Обработка двумерных массивов. Указатели C++
Обработать строку, используя указатели C++
обработка строк и указатели C++
C++ Просуммировать элементы массива используя указатели

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rexer
 Аватар для Rexer
151 / 150 / 19
Регистрация: 10.10.2010
Сообщений: 691
05.11.2012, 15:20     Обработка строк,используя указатели #2
Вы создайте новый массив символов,и запишите ответ туда
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if ((strlen(ptr)+1)%2)
            {
                    for(int i = 0; i < strlen(ptr)*0.5; i++)
                     {
                           tmp1[i] = tmp[i];
                      }
                    for(int i = strlen(ptr)*0.5 + 2; i < strlen(ptr); i++)
                      {
                           tmp1[i] = tmp[i];
                      }
//в ответе выводить tmp1,так без 2 символов в середине запишите             
}
        else
            {
             }
Ну идею поняли надеюсь,а так прям,чтобы удалить два символа как еще я не припомню..
в любом случае надо мне кажется сливать все в другой массив и его выводить
Yandex
Объявления
05.11.2012, 15:20     Обработка строк,используя указатели
Ответ Создать тему
Опции темы

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