45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
|
#include "myfuncStructOOP.h"
|
||
|
|
||
|
// Static function for string length calculation
|
||
|
static int my_strlen(const char *str) {
|
||
|
int length = 0;
|
||
|
while (str[length] != '\0') {
|
||
|
length++;
|
||
|
}
|
||
|
return length;
|
||
|
}
|
||
|
|
||
|
// 'Method' to count occurrences of each character
|
||
|
static void count_charactersStructOOP(ZliczaczStructOOP* zliczacz) {
|
||
|
int alfabet_length = my_strlen(zliczacz->alfabet);
|
||
|
|
||
|
// Initialize the result array to zero
|
||
|
for (int i = 0; i < alfabet_length; ++i) {
|
||
|
zliczacz->wynik[i] = 0;
|
||
|
}
|
||
|
|
||
|
// Count occurrences
|
||
|
for (int i = 0; i < alfabet_length; ++i) {
|
||
|
for (int j = 0; zliczacz->slowo[j] != '\0'; ++j) {
|
||
|
if (zliczacz->alfabet[i] == zliczacz->slowo[j]) {
|
||
|
zliczacz->wynik[i]++;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Constructor-like function to initialize a ZliczaczStructOOP
|
||
|
void initializeZliczaczStructOOP(ZliczaczStructOOP* zliczacz, const char* alfabet, const char* slowo, uint8_t* wynik) {
|
||
|
zliczacz->alfabet = alfabet;
|
||
|
zliczacz->slowo = slowo;
|
||
|
zliczacz->wynik = wynik;
|
||
|
zliczacz->count_characters = count_charactersStructOOP;
|
||
|
}
|
||
|
|
||
|
// #include "myfuncStructOOP.h"
|
||
|
|
||
|
// ZliczaczStructOOP zliczacz;
|
||
|
// initializeZliczaczStructOOP(&zliczacz, alfabet, slowo, wynik);
|
||
|
|
||
|
// zliczacz.count_characters(&zliczacz);
|