Created
June 26, 2021 21:06
-
-
Save DreamVB/591fcc34449ab6d9a5dcf2c9683dde76 to your computer and use it in GitHub Desktop.
A very basic Lorem Ipsum Generator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // A very basic Lorem Ipsum Generator | |
| #include <iostream> | |
| #include <string> | |
| #include <vector> | |
| #include <time.h> | |
| using namespace std; | |
| std::vector<string>m_data; | |
| size_t GetRandom(size_t min, size_t max){ | |
| return min + (rand() % static_cast<int>(max - min + 1)); | |
| } | |
| size_t len(const char *s){ | |
| size_t l = 0; | |
| //Get length of string | |
| while (*s != '\0'){ | |
| s++; | |
| l++; | |
| } | |
| return l; | |
| } | |
| void build_wordlist(void){ | |
| size_t x = 0; | |
| string s0; | |
| char const *src_words = "a,ac,accommodare,accumsan,accusata,ad,adhuc,adipisci,adipiscing" | |
| ",adolescens,adversarium,aenean,aeque,affert,agam,alia,alienum,aliquam,aliquet" | |
| ",aliquid,aliquip,altera,alterum,amet,an,ancillae,animal,ante,antiopam,aperiri" | |
| ",appareat,appetere,aptent,arcu,assueverit,at,atomorum,atqui,auctor,audire" | |
| ",augue,autem,bibendum,blandit,brute,causae,cetero,ceteros,civibus,class" | |
| ",commodo,commune,comprehensam,conceptam,conclusionemque,condimentum" | |
| ",congue,consectetuer,consectetur,consequat,consetetur,constituam,constituto" | |
| ",consul,contentiones,conubia,convallis,convenire,corrumpit,cras,cu,cubilia,cum" | |
| ",curabitur,curae,cursus,dapibus,debet,decore,definiebas,definitionem,definitiones" | |
| ",delectus,delenit,delicata,deseruisse,deserunt,deterruisset,detracto,detraxit,diam" | |
| ",dicam,dicant,dicat,dicit,dico,dicta,dictas,dictum,dictumst,dicunt,dignissim,dis" | |
| ",discere,disputationi,dissentiunt,docendi,doctus,dolor,dolore,dolorem,dolores,dolorum" | |
| ",doming,donec,dui,duis,duo,ea,eam,efficiantur,efficitur,egestas,eget,ei,eirmod,eius" | |
| ",elaboraret,electram,eleifend,elementum,elit,elitr,eloquentiam,enim,eos,epicurei" | |
| ",epicuri,equidem,erat,eripuit,eros,errem,error,erroribus,eruditi,esse,est,et,etiam,eu" | |
| ",euismod,eum,euripidis,evertitur,ex,expetenda,expetendis,explicari,fabellas,fabulas" | |
| ",facilis,facilisi,facilisis,falli,fames,fastidii,faucibus,felis,fermentum,ferri,feugait" | |
| ",feugiat,finibus,fringilla,fugit,fuisset,fusce,gloriatur,graece,graeci,graecis,graeco" | |
| ",gravida,gubergren,habemus,habeo,habitant,habitasse,hac,harum,has,hendrerit,himenaeos" | |
| ",hinc,his,homero,honestatis,iaculis,id,idque,ignota,iisque,imperdiet,impetus,in,inani" | |
| ",inceptos,inciderint,indoctum,inimicus,instructior,integer,intellegat,intellegebat" | |
| ",interdum,interesset,interpretaris,invenire,invidunt,ipsum,iriure,iudicabit,ius,iusto,"; | |
| //Split the above string into a vector. | |
| while (x < len(src_words)){ | |
| //Check if chat is equal to , | |
| if (src_words[x] == ','){ | |
| //Push the string onto the vector | |
| m_data.push_back(s0); | |
| //Clear string | |
| s0.clear(); | |
| } | |
| else{ | |
| //Append chars to string | |
| s0 += src_words[x]; | |
| } | |
| //INC counter | |
| x++; | |
| } | |
| } | |
| void gen_LoremIpsum(size_t words, size_t sentences, size_t paragraphs){ | |
| size_t r_word = 0; | |
| size_t m_words = GetRandom(1, words); | |
| for (size_t i = 0; i < paragraphs; i++){ | |
| std::cout << "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "; | |
| for (size_t j = 0; j < sentences; j++){ | |
| for (size_t z = 0; z < m_words; z++){ | |
| //Get random word index from m_data vector | |
| r_word = GetRandom(0, m_data.size() - 1); | |
| if (z < (m_words - 1)){ | |
| //Write out random word | |
| std::cout << m_data[r_word] << " "; | |
| } | |
| else{ | |
| std::cout << m_data[r_word]; | |
| } | |
| } | |
| std::cout << ". "; | |
| } | |
| std::cout << std::endl << std::endl; | |
| } | |
| } | |
| int main(){ | |
| size_t m_words = 12; | |
| size_t m_sentences = 8; | |
| size_t m_paragraphs = 4; | |
| //Get random seed. | |
| srand(unsigned(time(NULL))); | |
| //Build word list | |
| build_wordlist(); | |
| //Show generated text | |
| gen_LoremIpsum(m_words, m_sentences, m_paragraphs); | |
| //Clear words vector | |
| m_data.clear(); | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment