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

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

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

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

17.11.2012, 17:13. Просмотров 691. Ответов 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++
Написать функцию, принимающую указатель на строку и выполняющую удаление всех букв «а» из строки

Определить класс «строка символов» с компонентными данными: длина строки, указатель на строку. Перегрузить оп - C++
Определить класс «строка символов» с компонентными данными: длина строки, указатель на строку. Перегрузить операции: &lt;&lt; (вывод в виде...

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

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

Удаление символов из строки - C++
Дана строка символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть...

Удаление символов из строки - C++
Условие: Даны натуральное число N, символы s1,...,sn. Удалить из данной последовательности все группы букв вида abcd. Я начинающий...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13057 / 7320 / 817
Регистрация: 27.09.2012
Сообщений: 18,066
Записей в блоге: 3
Завершенные тесты: 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Эксперт С++
13057 / 7320 / 817
Регистрация: 27.09.2012
Сообщений: 18,066
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 23:42     Удаление символов строки, используя указатель #4
Он хоть компилируется?

Результат у меня:
Удаление символов строки, используя указатель
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2012, 23:59     Удаление символов строки, используя указатель
Еще ссылки по теме:

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

Удаление из строки всех символов, коды которых попадают в заданный диапазон - C++
написать функцию удаления из строки s всех символов ASCIIкоды которых попадают в диапозон от н1 до н2 включительно 0&lt;=н1&lt;=255,0&lt;=н2&lt;=255,...

Удаление символов из строки - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; int main() { string...

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

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

Удаление повторяющихся символов из строки - C++
Необходимо написать функцию delete_repeats, которая удаляет все повторяюшиеся символы из строки. например: Only three more lessons...


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

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

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