Как я могу подсчитать количество вхождений в строке С из /
?Как я могу подсчитать количество вхождений символа '/' в строку C?
Я могу это сделать:
int countSlash(char str[])
{
int count = 0, k = 0;
while (str[k] != '\0')
{
if (str[k] == '/')
count++;
k++;
}
return count;
}
Но это не элегантный способ; любые предложения о том, как его улучшить?
У вас достаточно элегантно ИМО ... –
Главной критикой может быть довольно специализированный интерфейс по сравнению с 'int countChar (char const * str, char c)', который (а) обещает не изменять переданную им строку и (b) можно использовать для подсчета звездочек, пробелов и т. д., практически без потери эффективности. Вы можете написать простую функцию 'int countSlash (char const * str) {return countChar (str, '/'); } ', если вам действительно нужен менее общий интерфейс. У вас есть достойный шанс, что компилятор будет оптимизировать это для вас, если включена инкрустация и т. Д. –
Элегантность, может быть по-разному. Это может быть кратчайший или наиболее читаемый или наиболее понятный. И наиболее читаемый, также может быть самым нечитаемым для другого человека. Поэтому «Элегантность» - это субъективная мысль. Может быть, вы должны спросить об ЭФФЕКТИВНО, с точки зрения скорости. – ChinoCarloSedilla