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

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

Войти
Регистрация
Восстановить пароль
 
 
Shur1990
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 28
#1

Задача.Строки.Удаление - C++

15.12.2013, 14:39. Просмотров 533. Ответов 19
Метки нет (Все метки)

Необходимо удалить из строки первое слово.Напишите код или подскажите алгоритм,пожалуйста.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 14:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача.Строки.Удаление (C++):

Здесь есть удаление столбца, как добавить удаление строки - C++
#include <iostream> #include <conio.h> using namespace std; int main() { int n; do {cout << "Razmer massiva: "; cin >> n;...

Удаление тэгов. Задача. - C++
Написал часть программы, а условие для удаления не могу придумать. Кто чем поможет? В текстовом файле хранится сохраненная html...

Удаление строки из файла\либо удаление самого файла. - C++
День добрый, вот функция(используемые переменные объявленны ранее): void delete_cruise() { FILE *fout; open_file("abase.dat"); ...

Задача о строке. Удаление дубликатов слов - C++
В строке символов определить количество повторений каждого слова и удалить дубликаты слов.Слова отделяются пробелами. помогите...

Строки (Удаление слова из строки) - C++
с нахождением слова проблем не возникает, а вот с удалением всех вхождений этого слова проблема! задание:Найти самое длинное слово...

Удаление строки - C++
Есть одна задача на удаление строки. Переделывал с другой задачи, там было на удаление и с ограничением по кол-ву символов в строке. Если...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6380 / 5945 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
15.12.2013, 14:43 #2
C++
1
2
3
4
5
char str[100]="aaa bbbb cccc";
char *p=str;
while( (*p)!=' ')p++;// передвигаем указатель к пробелу.
p++;// теперь указатель стоит на первой букве второго слова.
puts(p);// выводим все что осталось до терминального нуля.
1
ZeR_0
117 / 109 / 37
Регистрация: 30.01.2013
Сообщений: 297
15.12.2013, 14:44 #3
Удалить все что стоит перед первым вхождение специальных символов: .,!?' ':;
Может забыл какие

Добавлено через 47 секунд
Цитата Сообщение от zss Посмотреть сообщение
C++
1
2
3
4
5
char str[100]="aaa bbbb cccc";
char *p=str;
while( (*p)!=' ')p++;// передвигаем указатель к пробелу.
p++;// теперь указатель стоит на первой букве второго слова.
puts(p);// выводим все что осталось до терминального нуля.
Ну там же могут использовать не только пробелы
0
Ev_Hyper
Заблокирован
15.12.2013, 14:44 #4
Конкретнее задачу поставьте. То есть из
"это первая строка"
нужно удалить "это", чтобы осталось :
"первая строка".

Я правильно понял?
0
zss
Модератор
Эксперт С++
6380 / 5945 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
15.12.2013, 14:46 #5
если нужно фактически удалить первое слово, то после 4 строки вставьте
C++
1
2
strcpy(str,p); 
puts(str);
0
Shur1990
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 28
15.12.2013, 14:53  [ТС] #6
Да,верно . вводится предложение и из этого предложения нужно удалить самое первое слово

Добавлено через 1 минуту
без использования таких функций.максимум strlen

Добавлено через 1 минуту
char *p=str; несовсем понимаю что это
0
zss
Модератор
Эксперт С++
6380 / 5945 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
15.12.2013, 14:57 #7
Цитата Сообщение от Shur1990 Посмотреть сообщение
char *p=str; несовсем понимаю что это
присвоить p адрес первой буквы.
p++ - перейти к следующей букве.
вместо strcpy - копирования строки можете вставить
C++
1
2
3
int i;for(i=0;p[i];i++)
     str[i]=p[i];
str[i]=0;// терминальный нуль
1
Shur1990
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 28
15.12.2013, 15:19  [ТС] #8
Ага понял, а можно это char *p=str как-нибудь по-другому записать?

Добавлено через 1 минуту
zss, Ага понял, а можно это char *p=str как-нибудь по-другому записать?
0
zss
Модератор
Эксперт С++
6380 / 5945 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
15.12.2013, 16:28 #9
Цитата Сообщение от Shur1990 Посмотреть сообщение
а можно это char *p=str как-нибудь по-другому записать
Имя массива - это адрес первого символа.
В результате после присвоения p адреса какого-то из символов им можно пользоваться как массивом.
Т.е. str[i]=p[i];
0
Shur1990
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 28
15.12.2013, 17:32  [ТС] #10
не очень я понимаю т.к еще не проходили этого. можете подправить код?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <string.h>
void main(void)
{char A[100];
char T[100];
int i=0,l;
A[100]=T[i];
printf("строка:");
gets(A);
l=strlen(A);
for(i=0;i<l;i++)
while(T[i]!=' ')i++;
i++;
puts(T);}
0
zss
Модератор
Эксперт С++
6380 / 5945 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
15.12.2013, 19:59 #11
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
#include <stdio.h>
#include <string.h>
#include <conio.h>
void main(void)
{
    char A[100];
    char T[100];
    printf("enter string:");
    gets(A);
    char *p=A;
    while( (*p)!=' ' && (*p)!=0)p++;// передвигаем указатель к пробелу (или к концу строки если пробел не найдется)
    if((*p)==0)
    {
             puts("Строка состоит только из одного слова");
            getch();
            return 1;
    }
     p++;// теперь указатель стоит на первой букве второго слова.
     int L=strlen(p);
     for(i=0;i<=L;i++)
        T[i]=p[i]; // нуль перепишется тоже, т.к. переписываем L+1 символ.
     puts(T);
     getch(); // Ждем ввода символа, чтобы окно не закрылось
     return 0;
}
1
Shur1990
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 28
15.12.2013, 22:46  [ТС] #12
Спасибо

Добавлено через 2 часа 42 минуты
Почему-то ошибку код выдал.В 16 строке
0
zss
Модератор
Эксперт С++
6380 / 5945 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
16.12.2013, 00:23 #13
поменяйте тип функции
int main(void)
0
petyahohlov
27 / 22 / 5
Регистрация: 31.07.2013
Сообщений: 121
16.12.2013, 00:40 #14
что ты делаешь в этой строке
C++
1
A[100]=T[i];
0
Shur1990
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 28
16.12.2013, 16:39  [ТС] #15
Вообщем преподу не понравилось,что я использую указатель char *p.Есть какой-нибудь вариант решения не используя указатель?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2013, 16:39
Привет! Вот еще темы с ответами:

Удаление из строки - C++
Помогите пожалуйста! Заранее спасибо) Удалить текст, содержащийся в обрабатываемом файле, начиная с первой встретившейся буквы ‘М’ до...

Удаление строки - C++
Помогите удалить строку из текстового файла с последующим сдвигом всех строк, находящихся ниже, на 1 вверх. Заранее спасибо.

Удаление из строки - C++
Из введённой с клавиатуры строки нужно удалить все символы не являющиеся латинскими буквами. Удалить что-либо не проблема а вот как...

Строки.Удаление . - C++
Помогите пожалуйста.Вообще понять не могу. Вводится строка текста. Удалить последние N слов, содержащих заданную подстроку. Заданная...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.12.2013, 16:39
Ответ Создать тему
Опции темы

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