Advertisement
wintest

ТЕКСТ: Произволен текст generator

Jan 26th, 2017
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. #include <iostream>
  2. #include <clocale>
  3. #include <ctime>
  4. #include <cstring>
  5.  
  6.  
  7. using namespace std;
  8. //Задача 7.
  9. //Да се състави функция, която чрез на случаен принцип генерира низ със случайно генерирана дължина,
  10. //съдържащ само малки или големи латински букви, както и интервали.
  11. //Функцията да връща като резултат хистограма на срещанията на символите от генерирания текст.
  12.  
  13.  
  14. char * genRandText();
  15.  
  16. int main(){
  17. srand(time(NULL));
  18. setlocale(LC_ALL, "Bulgarian");
  19. char str[256];
  20. cout<<genRandText()<< endl;
  21. }
  22.  
  23. char * genRandText(){
  24. unsigned len = rand() % 91 + 10, tmp;
  25. unsigned ch[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 };//0..25->a..z, a 26  се използва за интервал
  26. char * genTxt = new char[len + 1];
  27. for (unsigned i = 0; i<len; i++){
  28. if (i == 0) genTxt[i] = (char)(ch[rand() % 26] + 65);//главна буква
  29. else{
  30. tmp = ch[rand() % 34];
  31. if (tmp == 26) genTxt[i] = ' ';
  32. else if (tmp == 27)genTxt[i] = '!';
  33. else if (tmp == 28)genTxt[i] = '?';
  34. else if (tmp == 29)genTxt[i] = '.';
  35. else if (tmp == 30)genTxt[i] = ',';
  36. else if (tmp == 31)genTxt[i] = ':';
  37. else if (tmp == 32)genTxt[i] = '...';
  38. else if (tmp == 33)genTxt[i] = ';';
  39. else genTxt[i] = (char)(tmp + 97);
  40. }
  41. }
  42. genTxt[len] = '\0';
  43. return genTxt;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement