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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
serg2006
0 / 0 / 0
Регистрация: 18.01.2009
Сообщений: 3
#1

Задача на удаление слов на "а" из текста - C++

18.01.2009, 18:35. Просмотров 1487. Ответов 6
Метки нет (Все метки)

Срочно!!! Помогите доработать программу, которая должна проанализировать три небольших предложения составленные из слов разделённых пробелами и вывести на экран новый текст без слов начинающихся на букву "а". Сами предложения должны быть прописаны в самой программе, т.е. текст уже должен быть в тексте программы.
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
28
29
30
#include <stdio.h>
#include<stdlib.h>
 void main( )
 {
 char s[ ]="album for arts foto.";
 {
 char **a,*w;
 int N=80;
 int l,r,k,m,i;
 a=(char**) malloc(m*sizeof(char*));
 w = (char*) malloc(N);
for (m=0; s[m] !='.';)
m=m+1;
r=0;
l=0;
{
  while((s[l]== ' ') && (l<=m))
  l=l+1;
  r=l;
  {
while((s[r+1]!= ' ')&& (r+1<=m))
r=r+1;
*w=s[l+(r+1)];
if (w[l]!= 'a')
printf("%s",w);
l=r+1;
}
}
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2009, 18:35     Задача на удаление слов на "а" из текста
Посмотрите здесь:

Задача на тему "Строки" (вывести на экран только предложения, состоящие из заданного количества слов) - C++
написать программу, которая считывает текст из файла и вывыдит на экран только предложения состоящие из задоного количества слов int...

Подсчитать количество слов "KSM" и "SKS" в строке - C++
Доброго времени суток, господа. Не знаю что делать с поставленном мне задачей -- подсчитать количество слов &quot;KSM&quot; и &quot;SKS&quot; в строке char...

Сокращение слов (например, "напряженность"- "напр-ть") - C++
нужно чтобы вместо, к примеру, слово &quot;напряженность&quot; заменялось на &quot;напр-ть&quot;. Я понял, что для этого нужно создать два txt-файла, с которых...

В каждом слове текста замените "а" на букву "е" - C++
В каждом слове текста замените &quot;а&quot; на букву &quot;е&quot;, если &quot;а&quot; стоит на четном месте, и заменить букву &quot;б&quot; на сочетание &quot;ак&quot;, если &quot;б&quot; стоит на...

Считывание слов из потока cin и вывод их в поток cout, с заменой нежелательных слов словом "Bleep" - C++
Напишите программу, заглушающую нежелательные слова; иначе говоря, считайте слова из потока cin и выведите их в поток cout, заменив...

Дан текст, состоящий не менее чем из пяти слов. Сформировать стек из тех слов, в которых присутствует буква "Е" - C++
Дан текст, состоящий не менее чем из пяти слов. Сформировать стек из тех слов, в которых присутствует буква &quot;Е&quot;. Я кое как составил...

Дан текст, состоящий не менее чем из пяти слов. Сформировать стек из тех слов, в которых присутствует буква "Е" - C++
Дан текст, состоящий не менее чем из пяти слов. Сформировать стек из тех слов, в которых присутствует буква &quot;Е&quot;. Помогите пожалуйста решить...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YurA_280784
Заблокирован
23.01.2009, 11:15     Задача на удаление слов на "а" из текста #2
Так это вывод строки без букв а
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>  
 
void main()
{
    char s[ ]="album for arts foto.";
    printf("Input string \r\n\t%s\r\n",s);
 
    printf("String after removing a\r\n\t");
    int i = 0;
    while(s[i] != '.')
    {
        if(s[i] != 'a')
            printf("%c",s[i]);
        i++;
    }
    printf("\r\n");
}
Добавлено через 1 минуту 22 секунды
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>  
 
void main()
{
    char s[ ]="album for arts foto.";
    printf("Input string \r\n\t%s\r\n",s);
 
    printf("String after removing a\r\n\t");
    int i = 0;
    while(s[i] != '.')
    {
        if(s[i] != 'a')
            printf("%c",s[i]);
        else
            while(s[i] != ' ')
                i++;
        i++;
    }
    printf("\r\n");
}
Тоже, но без слов на а(подразумевается что между словами стоит пробел)

Добавлено через 1 минуту 2 секунды
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>  
 
void main()
{
    char s[ ]="album for arts foto.";
    printf("Input string \r\n\t%s\r\n",s);
 
    printf("String after removing a\r\n\t");
    int i = 0;
    while(s[i] != '.')
    {
        if(s[i] != 'a')
            printf("%c",s[i]);
        else
            while(s[i] != ' ')
                i++;
        i++;
    }
    printf("\r\n");
}
Добавлено через 1 минуту 1 секунду
Упс без слов второй раз киданул
Если шо не забываем про СПС!...
plemiash
0 / 0 / 0
Регистрация: 13.01.2009
Сообщений: 17
24.01.2009, 22:41     Задача на удаление слов на "а" из текста #3
а как можно сделать....что бы прога не "выводила без "а" "....а удалила из массива эти слова сдвинув строки вместе

Добавлено через 6 минут 4 секунды
и(или) как удалить из строки все повторяющиеся буквы "а" и вывести массив без этих букв сдвинув его(пробелы можно не трогать).
YurA_280784
Заблокирован
26.01.2009, 11:13     Задача на удаление слов на "а" из текста #4
Это можно сделать если переприсваивать элементы строки, для этого сгодяться функции strchr(const char *str, char ch) - поиск первого символа ch в строке str(поиск слева направо)

короче буд гдет так (правда я пишу только для первого слова на 'а', как для всех предлагаю самому подумать)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int sLen      = strlen(str);
char *chBuf = strchr(s,'a');
int pos = -1;
if(chBuf)//Если слов на 'a' нет то chBuf == NULL, тогда strlen выдаст ошибку    
    pos = sLen - strlen(chBuf);//Узнаём позицию а гдеж слово на 'a' расположено
while(chBuf)
{
     if(chBuf[0] == ' ')//Пока не станет равным пробелу, ну или др табулятору
         break;
     *chBuf++;//Сдвигаем указатель
}
 
int bfLen = 0;
if(chBuf)
   bfLen = strlen(chBuf);
int add   = sLen - bfLen - pos;
int i;
if(0 <= pos)
{
   for(i = pos;i < sLen - add; i++)
        str[i] = str[i + add];
   str[sLen - add] = '\0';//Остальную часть строки отбрасываем
}
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
26.01.2009, 14:04     Задача на удаление слов на "а" из текста #5
C++
1
*chBuf++;//Сдвигаем указатель
а зачем здесь *
YurA_280784
Заблокирован
26.01.2009, 16:00     Задача на удаление слов на "а" из текста #6
Да признаю строку можно просто ++ сдвигать...
Здесь ты прав accept
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2009, 12:32     Задача на удаление слов на "а" из текста
Еще ссылки по теме:

"вставка" с "заменой" текста в файле. - C++
Здравствуйте. Решил для обретения бесценного опыта написать свой простенький парсер конфигов. Вообщем читает вполне себе читает...

Найти количество слов в заданном тексте, которые заканчиваются на "ая" - C++
Привет, ребята! Помогите пожалуйстас заданием)) Дан текст. Найти количество слов ,которые заканчиваютсяна &quot;ая&quot; спасибо))

Найти слово в фразе из 3 слов, которое начинаеться на букву "M" - C++
Необходимо найти слово в фразе из 3 слов, которое начинаеться на букву &quot;M&quot;(на английском). Нужно, чтобы это слово вывело отдельно от...

Класс "динамический массив" - добавление и удаление элементов в рантайме - C++
#ifndef ARRAY// if not defined #define ARRAY Class ARRAY{ Public ARRAY(); ~ ARRAY(); Void push_back (int...

Удаление подстрок из строки. Суммировать "вес" удаленных строк - C++
Думаю, что задача стандартная, и известна большинству программистам: Дана строка s, а также набор подстрок, которые можно удалять из...


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

Или воспользуйтесь поиском по форуму:
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.01.2009, 12:32     Задача на удаление слов на "а" из текста #7
цикл можно заменить
Код
    while(*chBuf && *chBuf++ != ' ')
        ;
Yandex
Объявления
27.01.2009, 12:32     Задача на удаление слов на "а" из текста
Ответ Создать тему
Опции темы

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