¿Cómo puedo contar el número de ocurrencias en una cadena C de /
?¿Cómo puedo contar el número de apariciones del carácter '/' en una cadena C?
Puedo hacer esto:
int countSlash(char str[])
{
int count = 0, k = 0;
while (str[k] != '\0')
{
if (str[k] == '/')
count++;
k++;
}
return count;
}
Pero esto no es una manera elegante; alguna sugerencia sobre cómo mejorarlo?
El suyo es lo suficientemente elegante IMO ... –
La principal crítica podría ser la interfaz bastante especializada en comparación con 'int countChar (char const * str, char c)', que (a) promete no modificar la cadena que se pasa, y (b) se puede usar para contar asteriscos, espacios en blanco, etc., esencialmente sin pérdida de eficiencia. Puede escribir una función simple 'int countSlash (char const * str) {return countChar (str, '/'); } 'si realmente quieres la interfaz menos general. Hay una posibilidad decente de que el compilador optimice eso para usted si la habilitación, etc. está habilitada. –
Elegancia, podría ser de muchas maneras diferentes. Puede ser el más corto, el más legible o el más fácil de entender. Y el más legible, también podría ser el más ilegible para otra persona. Por lo tanto, la 'Elegancia' es un pensamiento subjetivo. Tal vez deberías pedir la manera más EFICIENTE, en términos de velocidad. – ChinoCarloSedilla