LINUX.ORG.RU

Наноконкурс по Си :)

 , ,


4

2

Вдохновленный подобным запилю свой маленький топик :) В 2010, читая Седжвика, увидел такую задачу:

Написать программу, которая принимает строку в качестве аргумента и распечатывает таблицу, которая отображает встречаемые в строке символы с частотой появления каждого из них.

Проще некуда, ведь правда?

Для ее решения был накрапан такой быдлокод

#include <iostream>
#include <unistd.h>
#include <string.h>

using namespace std;

int main(int argc, char* argv[])
{ const int N = 255;
  const unsigned int sz = 26;
  static int l = 0;
  const char alf[sz]={'a','b','c','d','e','f','g','h','i','j','k','l','m',
						 'n','o','p','q','r','s','t','u','w','x','y','z'};
  int index[sz];
  char str[N];
   for (int i = 0; i < sz;i++)
   {index[i] = 0;
   }
   cin >> str;
   cout <<'\n';
   for ( unsigned int j = 0; j < (strlen(str));j++)
   {   if(str[j] < 0x61)
	   str[j] = _tolower(str[j]);
	 for (int k = 0; k < sz;k++){
		 if (str[j] == alf[k]) index[k]++;}  
   }
    cout <<'\t';
	for(int l = 0; l < sz;l++)
	  if (index[l]) { 
		  cout << alf[l] <<" ";
		  cout << index[l] <<'\n' <<'\t';
	  } 
	sleep(7);
   return 0;
}
Тут правда табуляции корежать линуксовый терминал, немного, но тогда дело было под оффтопом. Из того, что хотелось бы улучшить, например, чтобы программа выводила еще и позицию заданного символа от начала строки.

Короче, принимаются ваши красивые решения господа, а также коменты Царя, про мою тотальную АНскильность, хроническое НИасиляторство и даунизм. You are welcome!

★★★★★

Последнее исправление: beastie (всего исправлений: 3)
Ответ на: комментарий от Twissel

Таким макаром отпадают все ненужные проверки. В масив, как индекс, влазит весь char. (мало ли, что там на входе попасться может?)

beastie ★★★★★
()
Ответ на: комментарий от beastie

мало ли, что там на входе попасться может?

Кстати да, специальный символы называть 'letter' как-то неправильно. 'character' политкорректней

KennyMinigun ★★★★★
()
Ответ на: комментарий от beastie

тут Эдди отрицательными char (которые от utf8 «Привет"ов всяких уже потролил).

отмазыватся , что Седжвик переводной и строки латиница :)

qulinxao ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.