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

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

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

Удаление символов строки, используя указатель - C++

17.11.2012, 17:13. Просмотров 623. Ответов 4
Метки нет (Все метки)

Здравствуйте, помогите, пожалуйста, дописать код. Заранее спасибо за помощь.
Задание:
1. Ввести строку в символьный массив размером 60.
2. Выделить блок памяти, достаточный для размещения строки.
3. Переписать введённую строку во вновь выделенный блок памяти.
4. Используя указатель (-и), удалить из строки первые N символов. Значение N вводится пользователем.
Проблема возникает на 4 этапе. Никак не могу разобраться в указателях. Написал такой код ->
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main ()
{
    char s [60];
    int n;
    cout << "Enter string -> ";
    cin.getline (s,60);
    char* p=new char [ strlen (s)+1];
    strcpy_s (p,strlen (s)+1,s);
    cout << "Enter amount delsymbol -> "; 
    cin>>n;
    p+=n;    //функция удаления символов из сроки
    cout<<"Changed string -> "<< p <<endl;
    return 0;
}
Очень прошу помочь с кодом.

Добавлено через 6 минут
p.s.В принципе мой код выводит то, что нужно, но не удаляет первые символы. Мне подсказали переписать строку и установить нулевой байт. Переносить символы исходной строки, начиная с N на n символов назад и вывести новое состояние строки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 17:13     Удаление символов строки, используя указатель
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12512 / 7074 / 794
Регистрация: 27.09.2012
Сообщений: 17,469
Записей в блоге: 2
Завершенные тесты: 1
17.11.2012, 17:39     Удаление символов строки, используя указатель #2
C++
1
2
     memcpy(p,(p+n), (strlen(p)-n+1)*sizeof(p[0]));
    cout<<"Changed string -> "<< p <<endl;
Добавлено через 9 минут

Добавлено через 10 минут
И еще вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    #include <iostream>
using namespace std;
int main ()
{
    char s [60];
    int n;
    cout << "Enter string -> ";
    cin.getline (s,60);
    char* p=new char [ strlen (s)+1];
    strcpy_s (p,strlen (s)+1,s);
    cout << "Enter amount delsymbol -> "; 
    cin>>n;
    if (n<strlen(p)){
        int i;
        for(char *temp=p+n, i=0; *(p+i)=*temp; ++temp, ++i);
    }else{
        *p=0;
    }
    cout<<"Changed string -> "<< p <<endl;
    system("pause");
    return 0;
}
Falkon
2 / 2 / 0
Регистрация: 05.11.2012
Сообщений: 10
17.11.2012, 23:39  [ТС]     Удаление символов строки, используя указатель #3
Спасибо за старания, мне предпочтительней что-то наподобии 2 варианта, но он почему-то отказывается работать
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12512 / 7074 / 794
Регистрация: 27.09.2012
Сообщений: 17,469
Записей в блоге: 2
Завершенные тесты: 1
17.11.2012, 23:42     Удаление символов строки, используя указатель #4
Он хоть компилируется?

Результат у меня:
Удаление символов строки, используя указатель
Falkon
2 / 2 / 0
Регистрация: 05.11.2012
Сообщений: 10
17.11.2012, 23:59  [ТС]     Удаление символов строки, используя указатель #5
аа нашёл у себя ошибочку и немного смутился от 2 ворнингов, а так код работает спасибо большое.
Yandex
Объявления
17.11.2012, 23:59     Удаление символов строки, используя указатель
Ответ Создать тему
Опции темы

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