diff options
author | Santo Cariotti <dcariotti24@gmail.com> | 2019-12-11 22:25:01 +0100 |
---|---|---|
committer | Santo Cariotti <dcariotti24@gmail.com> | 2019-12-11 22:25:01 +0100 |
commit | cbffcbe7818dcfcd8b82b08736cf1bfbeea0ea76 (patch) | |
tree | 9354506a8bb30e57eb84f4a92cd118986a34c7b5 /I_anno/Programmazione_1/ex17.cc | |
parent | 751c7698830bd23be604105c7f2a3ed41ffea158 (diff) |
ex 17
Scrivere un metodo che prenda un parametro formale matrice di stringhe S di dimensione n × m e due array di caratteri C
e D di egual dimensione n e restituisca un array di short nel quale il generico elemento di posto i contiene il numero di stringhe
che iniziano con il carattere di C avente indice i e finiscono con il carattere in D avente indice i.
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; +} |