С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Falkon
2 / 2 / 0
Регистрация: 05.11.2012
Сообщений: 10
1

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

17.11.2012, 17:13. Просмотров 1094. Ответов 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 символов назад и вывести новое состояние строки.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 17:13
Ответы с готовыми решениями:

Написать функцию, принимающую указатель на строку и выполняющую удаление всех букв «а» из строки
Написать функцию, принимающую указатель на строку и выполняющую удаление всех...

Определить класс «строка символов» с компонентными данными: длина строки, указатель на строку. Перегрузить оп
Определить класс «строка символов» с компонентными данными: длина строки,...

Удаление символов из строки
Условие: Даны натуральное число N, символы s1,...,sn. Удалить из данной...

Удаление символов из строки
Здравствуйте, стоит задача удалить все знаки препинания и лишние символы из...

Удаление n символов из строки
Доброго времени суток, уважаемые жильцы этого форума! Я еще только учусь,...

4
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,804
Записей в блоге: 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;
}
1
Falkon
2 / 2 / 0
Регистрация: 05.11.2012
Сообщений: 10
17.11.2012, 23:39  [ТС] 3
Спасибо за старания, мне предпочтительней что-то наподобии 2 варианта, но он почему-то отказывается работать
0
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,804
Записей в блоге: 2
Завершенные тесты: 1
17.11.2012, 23:42 4
Он хоть компилируется?

Результат у меня:
Удаление символов строки, используя указатель
1
Falkon
2 / 2 / 0
Регистрация: 05.11.2012
Сообщений: 10
17.11.2012, 23:59  [ТС] 5
аа нашёл у себя ошибочку и немного смутился от 2 ворнингов, а так код работает спасибо большое.
0
17.11.2012, 23:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2012, 23:59

Удаление символов строки
В строке удалить второй и четвертый по счету символы

Удаление символов из строки
в С++ есть некая процедура, есть ли аналог в Си? .erase() И можно несколько...

Удаление символов из строки
Здравствуйте. В паскале есть процедура Delete(st, i, j) которая удаляет из...


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

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

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