Посчитать сколько заглавных букв и маленьких находится в строке. Выводит ноль

Написал код , но почему-то постоянно возвращает ноль . Я не понимаю почему , помогите пожалуйста

#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

void lilbig(char *s,int big, int small) {
    for (int i = 0; s[i]; i++)
    {
        if (('A' <= s[i] && s[i] <= 'Z'))
        {
            big++;
        }
        if (('a' <= s[i] && s[i] <= 'z'))
        {
            small++;
        }
    }
}



int main()
{
    setlocale(LC_ALL, "Russian");
    char s[100];
    int big = 0;
    int small = 0;
    cout << "Enter the string: ";
    gets_s(s);

    lilbig(s , big , small);

    cout << "The number of capital letters per line: " << big << endl;
    cout << "Number of lowercase letters per line: " << small << endl;

    system("pause");
    return 0;
}

Ответы (2 шт):

Автор решения: Igor

Вы передаете параметры по значению. Надо - по ссылке.

void lilbig(char *s, int& big, int& small) {
→ Ссылка
Автор решения: AR Hovsepyan

Можно передать по ссыльке, чтобы работать именно с этими обьектами(переменными), но в общем, если работа функции заключается в получении какого то значеня, лучше вернуть из функции это значение(в данном случаи это пара значений):

std::pair<int, int>  lilbig(const char* s) {
    int small = 0, big = 0;
    for (int i = 0; s[i]; i++) {
        if (('a' <= s[i] && s[i] <= 'z'))
            ++small;
        else if (('A' <= s[i] && s[i] <= 'Z'))
            ++big;
    }
    return { small, big };

}

//тогда  программа будет болше защищена от ошибок
int main() {  
    char s[100];   
    cout << "Enter the string: ";
    gets_s(s);
    auto[s, b] = lilbig(s);
    cout << "The number of capital letters per line: " << b << endl;
    cout << "Number of lowercase letters per line: " << s << endl;
    return 0;
}
→ Ссылка