Come ho detto esistono diverse soluzioni per uno stesso problema! Ci sono soluzioni migliori di altre, la soluzione mostrata da docdoc è migliore di quello che volevi fare tu
Però anche il tuo approccio è una possibile soluzione, solo con qualche modifica
confronto carattere per carattere
se trovo uno diverso restituisco 0
se tutti i caratteri sono uguali restituisco 1
Tua funzione modificata
boolean Confronta( char*a, char*b,byte k){
for (byte i=0;i<k;i++){
if (a[i]!=b[i])
return false; // ho trovato un carattere diverso
}
return true; //il ciclo for è terminato non è uscito dalla funzione quindi tutti i carattere sono uguali
}
E dove la metteresti la const?
Quello che passi alla funzione e il puntatore alla stringa, non la stringa
Puntatore può anche essere costante, ma la stringa no....
Mi hai fatto venire il dubbio perché const non l'ho mai usato
Ho provato su ideone un ide online, e se usi const su un puntatore a char rende immodificabile la stringa.
P.S. non uso mai const nei parametri di una funzione, sono io che scrivo la funzione e sono io che so che non vanno modificati i parametri quindi lo trovo inutile
Si infatti
Const char * è costante la stringa
Char const * è costante il puntatore
Const char const * è puntatore costante a stringa costante
Comunque sono d'accordo con te: io scrivo la funzione, io evito di scrivere dove non devo...
Se devi fare una API per qualcun altro, difficilmente lui sa cosa può modificare e cosa no, da cui l'utilità di const.
Senza contare che il compilatore può mettere in atto varie ottimizzazioni, se sa che qualcosa non deve essere modificato (anche se i compilatori più furbi sono in grado di accorgersene da soli).
Infine, in C++ sono valide entrambe le espressioni:
const char *pippo;
char * const pippo;
Il primo vuol dire che ciò a cui il puntatore punta non è modificabile, il secondo che il puntatore stesso non è modificabile (ma ciò a cui punta sì).
Le due cose possono anche essere combinate, ottenendo un fantastico: