Тема: Обробка тексту
Допоможіть вирішити задачу.
Потрібно знайти і надрукувати слово, в якому міститься найбільше символів “А”. Словом вважати послідовність букв, розділених пропусками.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Обробка тексту
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Допоможіть вирішити задачу.
Потрібно знайти і надрукувати слово, в якому міститься найбільше символів “А”. Словом вважати послідовність букв, розділених пропусками.
У чому у вас проблема?
не знаю як реалузувати
не знаю як реалузувати
Але ж у вас мають бути якісь міркування.
Або навіть спроби напрацювання.
Потрібно спочатку написати шматок, який виділяє слова. Наступний етап - визначити у якому слові найбільше символів "A".
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();
}
#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;
}
Рекламуйте форум.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися