Нахождение количества '1' в строковом массиве в C - PullRequest
0 голосов
/ 02 апреля 2020

Я делал домашнюю работу, и мне нужно создать программу на C, которая подсчитывает, сколько раз '1' находится в массиве строк. Например, я получил массив строк и в нем я получил 3 строки: D12, B11 и F1.

Программа должна считать все 1. Для этого примера это будет 4. Как мне выполнить sh это?

Вот код, который у меня есть:

#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main()
{
    int i=0,N,br=0;
    char s[10][20];

    scanf("%d", &N);
    for(i=0;i<N;i++)
    {
       scanf("%s", &s[i]);
       if(strchr(s[i], '1') != NULL);
       {
           ++br;
       }
    }
    printf("%d", br);
}

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Просто напишите функцию подсчета вхождений символа в одну строку.

size_t count(const char *str, int ch)
{
    size_t cnt = 0;

    while(*str) cnt += (*str++ == ch);

    return cnt;
}
0 голосов
/ 02 апреля 2020

Вы должны заменить это выражение if

   if(strchr(s[i], '1') != NULL);
   {
       ++br;
   }

следующим l oop

   for ( const char *p = s[i]; ( p = strchr( p, '1' ) ) != NULL; ++p )
   {
       ++br;
   }

Обратите внимание, что этот вызов

scanf("%s", &s[i]);

должен может быть изменен, по крайней мере, как

scanf("%s", s[i]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...