Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.01.2009
Сообщений: 3
1

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

18.01.2009, 18:35. Показов 1648. Ответов 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;
}
}
}
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2009, 18:35
Ответы с готовыми решениями:

Даны три слова - "мама", "мыла", "раму". Задача - напечатать всевозможные варианты построения слов
Я записал код, однако эту часть надо автоматизировать, поможете? КОД: } #include &lt;iostream&gt;...

Программа считывает файл ".txt" и выводит сколько "слов" в нем дано ("слова" разделены пробелом)
Прошу помощи с кодом. Если честно немного не понимаю что пошло не так. #include &lt;iostream&gt;...

Необработанное исключение в "0x76f015de" в "контрольная 1 задача 2.exe": 0xC0000005: Нарушение прав доступа при чтении "0x334e2c64"
доброго времени суток. Необработанное исключение в &quot;0x76f015de&quot; в &quot;контрольная 1 задача 2.exe&quot;:...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

6
Заблокирован
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 секунду
Упс без слов второй раз киданул
Если шо не забываем про СПС!...
1
0 / 0 / 0
Регистрация: 13.01.2009
Сообщений: 17
24.01.2009, 22:41 3
а как можно сделать....что бы прога не "выводила без "а" "....а удалила из массива эти слова сдвинув строки вместе

Добавлено через 6 минут 4 секунды
и(или) как удалить из строки все повторяющиеся буквы "а" и вывести массив без этих букв сдвинув его(пробелы можно не трогать).
0
Заблокирован
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';//Остальную часть строки отбрасываем
}
0
4855 / 3276 / 467
Регистрация: 10.12.2008
Сообщений: 10,570
26.01.2009, 14:04 5
C++
1
*chBuf++;//Сдвигаем указатель
а зачем здесь *
0
Заблокирован
26.01.2009, 16:00 6
Да признаю строку можно просто ++ сдвигать...
Здесь ты прав accept
0
4855 / 3276 / 467
Регистрация: 10.12.2008
Сообщений: 10,570
27.01.2009, 12:32 7
цикл можно заменить
Код
    while(*chBuf && *chBuf++ != ' ')
        ;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2009, 12:32

Вычеркивание из слов текста всех букв, стоящих на нечетных местах после буквы "а"
Ребят,помогите пожалуйста создать программу. Для выполнения задания использовать класс string...

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

Составить таблицу слов данного текста, начинающихся с буквы "А", с указанием числа повторений каждого слова
нужен код как можно проще с использованием строк

Подсчитать число слов в строке, содержащих одну букву "а" и две буквы "d"
Подсчитать число слов в строке, содержащих одну букву &quot;а&quot; и две буквы &quot;d&quot;.


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

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

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