21

Re: Опрацювання текстових даних знайти слова які містять дві літери а

Знайти і надрукувати слова заданого тексту і їх кількість, які містять по 2 букви А.

Взято з простірів тирнету:

    string s="Ця стрічка мабудь гарна"v,k="аа";
    stringstream ss(s);
    while (getline(ss,v, ' ')){
        if(k.find(v[0])!=std::string::npos){
          cout<< v<<'endl;    
        }
    }
    cin.get();

Підходить?

22

Re: Опрацювання текстових даних знайти слова які містять дві літери а

Itari написав:
    string s="Ця стрічка мабудь гарна"v,k="аа";
    stringstream ss(s);
    while (getline(ss,v, ' ')){
        if(k.find(v[0])!=std::string::npos){
          cout<< v<<'endl;    
        }
    }
    cin.get();

Вас зелений "cin", не смущає? Хоча б візуально. Я вже не говорю що воно робить шось не те і не компілиться.

23

Re: Опрацювання текстових даних знайти слова які містять дві літери а

Ну що тут  такого? Опечатка лише. Раптово нажав ковичку, коли писав пост...
Складно опрацювати її, чи як?

24

Re: Опрацювання текстових даних знайти слова які містять дві літери а

1. Пропущений оператор слідування - кома

string s="Ця стрічка мабудь гарна"v,k="аа";

2. if буде true, коли стрічка v буде починатись з "a", це зовсім не те що вимагається в задачі

if(k.find(v[0])!=std::string::npos)

3. Ніхто не говорив що "a" повинні йти підряд

k="аа"

Нічого тут такого. Тільки код не працює :) А якби працював то виконував би не ту задачу, тому добре що він не працює :)

25

Re: Опрацювання текстових даних знайти слова які містять дві літери а

виконував би не ту задачу

Чому це не ту?

26

Re: Опрацювання текстових даних знайти слова які містять дві літери а

if(k.find(v[0])!=std::string::npos)

Перевіряє чи є входження в k першого символу v?

"Ця стрічка мабудь гарна"

Ця - в "аа" символа "Ц" нема
стрічка - в "аа" символа "с" нема
мабудь - в "аа" символа "м" нема
гарна - в "аа" символа "г" нема

А от слово гарна має дві "а".

27

Re: Опрацювання текстових даних знайти слова які містять дві літери а

Скажіть будьласка як передати слово з двома буквами А в масив word_s.

#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
 
int main()
{
    char word[200],word_s[200];
    //Вводим масив word.
 {   cout<<"write"<<endl;
gets_s(word);
 }
 { int k=0;
for(int i=0; i<strlen(word);i++)
{
    if(word[i]==' ')
        k++;
    {
        for (int j=0; j<strlen(word_s); j++)
if(word[i]=='a')
    k++;
        if(k==2)
//Скажіть будьласка як передати слово з двома буквами А в масив word_s.    

cout<<word_s[j];
    }
}
    
 }
 //Рахуэ кількість елементів в масиві word_s.
{int n=0;
    for (int j=0; j<strlen(word_s); j++)
    {
    if (word_s[j]==' ')
n++;
}
cout<<"Result ="<<n+1;
}
return 0;
}

28

Re: Опрацювання текстових даних знайти слова які містять дві літери а

А от слово гарна має дві "а".

Так автору треба не послідовні "аа" а взагалі по кількості?  %)

29

Re: Опрацювання текстових даних знайти слова які містять дві літери а

Itari написав:

А от слово гарна має дві "а".

Так автору треба не послідовні "аа" а взагалі по кількості?  %)

Мені потрібно вивести слова з двома буквами а на екран і порахувати їх кількість.

30

Re: Опрацювання текстових даних знайти слова які містять дві літери а

з двома буквами а

Які знаходятся поруч, чи взагалі слово, у якому лише дві букви "а"?

31

Re: Опрацювання текстових даних знайти слова які містять дві літери а

Itari написав:

з двома буквами а

Які знаходятся поруч, чи взагалі слово, у якому лише дві букви "а"?

Коли ви чуєте вираз "людина з двома руками", ви думаєте про людину з двома руками з одного боку чи все ж таки будь-де?

32

Re: Опрацювання текстових даних знайти слова які містять дві літери а

Тримайте на PHP :D
Думаю перекласти на С не буде проблемою..

$string = 'AVAST is antivirus. ADIDAS is sport'; // рядок
$string = $string.' '; //+ пробіл в кінець
$length = mb_strlen($string); //довжина рядка
$word = NULL; //змінна для слів
$words = []; //масив всіх слів
$a_words = []; //масив слів з 2 - а

for($i=0; $i<$length; $i++)
{
//записуємо в кінець рядка word кожен наступний символ рядка string
$word .= $string[$i];
//якщо наступний символ - пробіл,то зберігаємо слово в масив
if($string[$i] == ' ') {
 $words[] = $word;
//і робимо змінну пустою
$word = NULL;
}
}

$count = sizeof($words); //к-сть елементів масиву
//перебір слів масиву
for($i=0; $i<$count; $i++)
{
$k = 0; //старт лічильника
$this_word = $words[$i]; //поточне слово
$word_length = mb_strlen($this_word); //довжина поточного слова
//перебір символів поточного слова
for($j=0; $j<$word_length; $j++)
{
//якщо символ A ,то збільшуємо лічильник на 1
if($this_word[$j] == 'A') $k++;
//якщо в лічильнику дві А
if($k == 2) {
//пишемо поточне слово в масив
$a_words[] = $this_word;
//та обнуляємо лічильник
$k = 0;
}
}
//обнуляємо у будь-якому випадку
$k = 0;
}

//кількість слів в масиві з 2 - A
$a_count = sizeof($a_words);

print 'Кількість слів: '.$a_count. PHP_EOL;

//друкування слів

for($i=0; $i<$a_count; $i++)
{
print $a_words[$i];
}