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

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

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

В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. - C++

07.12.2012, 17:31. Просмотров 904. Ответов 7
Метки нет (Все метки)

В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. Помогите пожалуйста) Если можно с комментами...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2012, 17:31     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А.
Посмотрите здесь:

C++ Посчитать число слов, которые начинаются и заканчиваются с одинаковой буквы в произвольном тексте
C++ Слова, начинающиеся и оканчивающиеся на гласные буквы
В тексте выделить все слова, что начинаються с буквы "к" C++
В пpоизвольном тексте найти и отпечатать все слова длиной 5 символов C++
C++ Строки (В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А)
Выделить в строке s1 все слова,начинающиеся с гласной буквы C++
C++ В произвольном тексте найти и отпечатать все слова длиной 5 символов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tolord
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 5
07.12.2012, 18:05     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. #2
Считай текст, затем пусти цикл от начала до конца. Как только упираешься в символ в символ 'a' или 'A', начинаешь записывать это в отдельный массив чаров, пока не упрешься в символ, отличный от буквы, либо в конец текста, то есть находящийся вне диапазона ('а' - 'я' или 'А' - 'Я'), на этом заканчиваешь, выводишь массив чаров на экран, затем идешь дальше по введенному тексту, пока он не закончится.
David Sylva
 Аватар для David Sylva
1284 / 946 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
07.12.2012, 18:09     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. #3
С помощью функции strtok, разбиваешь строку на слова, если слова первый символ слова A, выводишь на экран, всё.
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6228 / 3473 / 425
Регистрация: 29.11.2010
Сообщений: 9,178
07.12.2012, 18:18     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
 
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::istringstream ist(str);
    std::copy_if(std::istream_iterator<std::string>(ist),
        std::istream_iterator<std::string>(),
        std::ostream_iterator<std::string> (std::cout, "\n"),
        [](const std::string &s) { return s[0] == 'A'; } );
}
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
07.12.2012, 18:44     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. #5
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
31
32
33
34
35
36
37
/* Програма актуальна для английского алфавита (ASCII) */
#include <stdio.h>
#define SIZE 65535 // максимальная длина вводимых символов на одну строку
#define OUT 0
#define IN 1
 
int main( void )
{
    int i, j, c, limit, state;
    char text[SIZE];
    
    limit = SIZE - 1;
    for( i = 0; limit > 0 && (c = getc(stdin)) != EOF && c != '\n'; --limit )
    text[i++] = c;
    if( c == '\n' )
    text[i++] = '\n';
    text[i] = '\0'; // запишем символ конца файла
    /* Отсортируем массив */
    i = j = 0;
    state = IN;
    while( text[i] ) {
    if( text[i] == ' ' || text[i] == '\t' )
        state = OUT;
    else if( state == OUT && text[i] == 'A') {
        while( text[i] != '\0' && text[i] != '\n' && text[i] != '\t' && text[i] != ' ' )
        text[j++] = text[i++];
        text[j++] = ' ';
        state = IN;
    }
    ++i;
    }
    if( text[i] = '\n')
    text[j++] = text[i];
    text[j] = '\0';
    printf( "%s", text ); // отобразим результат
    return 0;
}
Добавлено через 8 минут
Цитата Сообщение от tolord Посмотреть сообщение
читай текст, затем пусти цикл от начала до конца. Как только упираешься в символ в символ 'a' или 'A', начинаешь записывать это в отдельный массив чаров, пока не упрешься в символ, отличный от буквы, либо в конец текста, то есть находящийся вне диапазона ('а' - 'я' или 'А' - 'Я'), на этом заканчиваешь, выводишь массив чаров на экран, затем идешь дальше по введенному тексту, пока он не закончится.
Создавать новый массив вовсе необязательно, хотя, возможно это будет немного легче...
David Sylva
 Аватар для David Sylva
1284 / 946 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
07.12.2012, 18:49     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream> 
 
int main() 
{ 
    char str[] = "dasdasdas sdsadasd aaaaaaaaa aaaaaaaaaa aaaaaaaasgd asdsa as asdqwqwe qweqwe"; 
    char* ptr; 
 
    ptr = strtok(str, " "); 
 
    while(ptr!=NULL) 
    { 
        if(ptr[0] == 'a') 
            std::cout << ptr << " "; 
        ptr = strtok(NULL, " "); 
    }  
    std::cout << std::endl;
}
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
07.12.2012, 21:08     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. #7
Со strtok() будет попроще
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2012, 14:58     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А.
Еще ссылки по теме:

C++ Найти все слова, начинающиеся с буквы b
C++ В заданном пользователем тексте удалить слова, начинающиеся с указанной буквы
C++ Определить, есть ли в тексте слова, начинающиеся и заканчивающиеся с буквы "А", и их количество
Определить, есть ли в тексте слова, начинающиеся и заканчивающиеся с буквы "А" C++
Строки: вывести слова с наименьшим количеством букв; удалить слова, начинающиеся с маленькой буквы C++

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

Или воспользуйтесь поиском по форуму:
Арагон
1 / 1 / 0
Регистрация: 29.10.2012
Сообщений: 45
23.12.2012, 14:58  [ТС]     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. #8
Помогите написать комментарии. И такой вот вопрос как выделить слова в результате выполненной программы.
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
#include <stdio.h>
#include <string.h>
#include <conio.h>
void main()
{
clrscr();
char s[100],word[50];
int i=0, bw, ew, len;
gets(s); len=strlen(s);
while (i<len)
{
 while((s[i]==' ')&&(i<len)) i++;
 bw=i;
 while((s[i]!=' ')&&(i<len)) i++;
 ew=i;
 if(s[bw]=='A')
 {
  printf("Slova s bukvoy A:\n");
  if (ew-bw>0)
   {strncpy(word, &s[bw], ew-bw);
    word[ew-bw]=0;}
  else
   {strncpy(word, &s[bw], ew-bw+1);
    word[ew-bw+1]=0;}
  printf("%s\n", word);
 }
}
}
Yandex
Объявления
23.12.2012, 14:58     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А.
Ответ Создать тему
Опции темы

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