diff options
Diffstat (limited to 'I_anno/Programmazione_1/ex17.cc')
-rw-r--r-- | I_anno/Programmazione_1/ex17.cc | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/I_anno/Programmazione_1/ex17.cc b/I_anno/Programmazione_1/ex17.cc new file mode 100644 index 0000000..9eee61d --- /dev/null +++ b/I_anno/Programmazione_1/ex17.cc @@ -0,0 +1,43 @@ +#include <iostream> + +using namespace std; + +template<int N, int M> +short* func(string (&S)[N][M], char (&C)[N], char (&D)[N]) { + short* a = new short[N]; + + for(int i = 0; i < N; ++i) { + short counter = 0; + for(auto const& rows_string : S[i]) { + if(rows_string.length() > 2) { + if(rows_string.at(0) == C[i] + && rows_string.at(rows_string.length()-1) == D[i]) + ++counter; + } + } + + a[i] = counter; + } + + + return a; +} + +int main() { + string t[3][3]{ + {"suca", "we", "soia"}, + {"omg", "ooohygodg", "onopg"}, + {"", "mii", ""}, + }; + + char c[3] = {'s', 'o', 'a'}; + char d[3] = {'a', 'g', 'a'}; + + short* n = func(t, c, d); + + for(int i = 0; i < 3; ++i) { + cout << n[i] << ' '; + } + + return 0; +} |