Come posso contare il numero di occorrenze in una stringa C di /
?Come posso contare il numero di occorrenze del carattere '/' in una stringa C?
posso fare questo:
int countSlash(char str[])
{
int count = 0, k = 0;
while (str[k] != '\0')
{
if (str[k] == '/')
count++;
k++;
}
return count;
}
Ma questo non è un modo elegante; qualche suggerimento su come migliorarlo?
Il tuo è abbastanza elegante IMO ... –
La critica principale potrebbe essere l'interfaccia piuttosto specializzata rispetto a 'int countChar (char const * str, char c)', che (a) promette di non modificare la stringa che viene passata, e (b) può essere usato per contare asterischi, spazi vuoti, ecc con essenzialmente nessuna perdita di efficienza. Puoi scrivere una semplice funzione 'int countSlash (char const * str) {return countChar (str, '/'); } 'se vuoi davvero un'interfaccia meno generale. C'è una buona possibilità che il compilatore ottimizzerà questo per te se l'inlining etc è abilitato. –
Eleganza, potrebbe essere in molti modi diversi. Potrebbe essere il più breve, o il più leggibile, o il più facilmente comprensibile. E il più leggibile, potrebbe anche essere il più illeggibile per l'altra persona. Pertanto, l '"Eleganza" è un pensiero soggettivo. Forse dovresti chiedere il modo più EFFICIENTE, in termini di velocità. – ChinoCarloSedilla