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

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

Войти
Регистрация
Восстановить пароль
 
Falkon
2 / 2 / 0
Регистрация: 05.11.2012
Сообщений: 10
#1

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

05.11.2012, 14:38. Просмотров 449. Ответов 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++
1) Написать программу которая проверяет находиться ли введенное с клавиатуры число в массиве. Массив должен вводиться во время работы...

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной - C++
Мой код. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include&lt;iomanip&gt; using namespace std; void min_max(int*pa, int*pb,...

Обработка двумерных массивов. Указатели. - C++
Лабораторная работа №5 Обработка двумерных массивов. Указатели. Цель работы: изучение способов описания, ввода-вывода и обработки...

Обработка двумерных массивов. Указатели. - C++
помогите сделать. буду благодарен с алгоритмами(блок-схемами)

Обработка двумерных массивов. Указатели - C++
Найти наименьший элемент матрицы X (mn) и записать нули в ту строку и столбец, где он находится.

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

Проход матрицы используя указатели - C++
Никогда не любил использовать указатели, а мне сказали мол лабу надо делать еще и на указателях. Условие: узнать совпадают ли сумы...

Заполнить массив, используя указатели - C++
MAYDAY! Нужна помощь по написанию вот такой программы. Дан массив a из n действительных чисел. Используя указатели, заполнить массив B,...

Массивы, указатели, обработка одномерных массивов - C++
Вывести на экран все числа заданной последовательности, индексы которых есть степени тройки. Определить в заданной последовательности целых...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rexer
163 / 162 / 20
Регистрация: 10.10.2010
Сообщений: 724
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
            {
             }
Ну идею поняли надеюсь,а так прям,чтобы удалить два символа как еще я не припомню..
в любом случае надо мне кажется сливать все в другой массив и его выводить
Ответ Создать тему
Опции темы

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