1

Тема: Обробка тексту

Допоможіть вирішити задачу.
Потрібно знайти і надрукувати слово, в якому міститься найбільше символів “А”. Словом вважати послідовність букв, розділених пропусками.

2

Re: Обробка тексту

У чому у вас проблема?

3

Re: Обробка тексту

Bartash написав:

У чому у вас проблема?

не знаю як реалузувати

4

Re: Обробка тексту

vitaljaa написав:

не знаю як реалузувати

Але ж у вас мають бути якісь міркування.
Або навіть спроби напрацювання.

5

Re: Обробка тексту

Потрібно спочатку написати шматок, який виділяє слова. Наступний етап - визначити у якому слові найбільше символів "A".

6

Re: Обробка тексту

Bartash написав:
vitaljaa написав:

не знаю як реалузувати

Але ж у вас мають бути якісь міркування.
Або навіть спроби напрацювання.

Із напрацювань тільки це

#include <stdio.h>
#include <conio.h>
#define SIZE 225
int    main(){
      int k=0,i=0,a=0;
      char text[SIZE]="Happy New Yeaar as aaasd";
      char *word=text;
      puts(text);
      while(*word)
           {
        if(*word!=' ')
          {
             if(*word=='a'){ // Íàÿâí³ñòü áóêâè À
                    a++;
                    }
             if(!i) {i++;k++;}// ê³íåöü ñëîâà
          
          }    else {
            if(i) printf("\n");
            i=0;
                }
        word++;
           }
      printf("\n Count SLIV: %i \n Count A: %d",k,a);    
      getch();        
    }

7

Re: Обробка тексту

#include <stdio.h>
#define MAX 1024
     
int getline(char arr[]);
int main(int argc, char *argv[]){
    int c, i, j, k, l, start, longest, end;
    char row[MAX];
    c = longest = 0;

    while ((c = getline(row)) > 0){
        i = j = k = longest = 0;
        for(i = 0; i < c; i++){ // i - pointer j - 1st letter of word
                        if(row[i] == 'A'){
                k++; //counting letters
                printf("k = %d\n", k);
            }
            if((row[i] == ' ' || row[i] == '\n') && k > longest){
                longest = k;
                start = j;
                end = i;
                j = i+1;
                k = 0;
                        printf("\n1: i = %d, j = %d, k = %d, start = %d,  end = %d, longest = %d\n", i, j, k, start, end, longest);
            }else if((row[i] == ' ' || row[i] == '\n') && k <= longest){
                j = i+1;
                k = 0;
                        printf("\n2: i = %d, j = %d, k = %d, start = %d,  end = %d, longest = %d\n", i, j, k, start, end, longest);
            }
        }
        printf("\n3: i = %d, j = %d, k = %d, start = %d,  end = %d, longest = %d\n", i, j, k, start, end, longest);
        for(j = start; j < end; j++)
        printf("%c", row[j]);
        putchar('\n');
    }
    putchar('\n');
    return 0;
}
     
int getline(char row[]){
    int c, i;
    for(i = 0; i < MAX-1 && (c = getchar()) != '\n' && c != EOF; i++){
        row[i] = c;
    }
    row[i] = '\n';
    row[++i] = '\0';
    return i;
}

Рекламуйте форум.