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

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

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

слова начинающиеся с гласной буквы C++
C++ Слова, начинающиеся и оканчивающиеся на гласные буквы
В тексте выделить все слова, что начинаються с буквы "к" C++
В пpоизвольном тексте найти и отпечатать все слова длиной 5 символов C++
C++ Строки (В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tolord
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 5
07.12.2012, 18:05     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. #2
Считай текст, затем пусти цикл от начала до конца. Как только упираешься в символ в символ 'a' или 'A', начинаешь записывать это в отдельный массив чаров, пока не упрешься в символ, отличный от буквы, либо в конец текста, то есть находящийся вне диапазона ('а' - 'я' или 'А' - 'Я'), на этом заканчиваешь, выводишь массив чаров на экран, затем идешь дальше по введенному тексту, пока он не закончится.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
07.12.2012, 18:09     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А. #3
С помощью функции strtok, разбиваешь строку на слова, если слова первый символ слова A, выводишь на экран, всё.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
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
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
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     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А.
Еще ссылки по теме:

Выделить в строке s1 все слова,начинающиеся с гласной буквы C++
C++ В произвольном тексте найти и отпечатать все слова длиной 5 символов
C++ Найти все слова, начинающиеся с буквы b

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

Или воспользуйтесь поиском по форуму:
Арагон
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     В произвольном тексте выделить и отпечатать слова, начинающиеся с буквы А.
Ответ Создать тему
Опции темы

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