Skip to content

Instantly share code, notes, and snippets.

@DreamVB
Created June 26, 2021 21:06
Show Gist options
  • Select an option

  • Save DreamVB/591fcc34449ab6d9a5dcf2c9683dde76 to your computer and use it in GitHub Desktop.

Select an option

Save DreamVB/591fcc34449ab6d9a5dcf2c9683dde76 to your computer and use it in GitHub Desktop.
A very basic Lorem Ipsum Generator
// 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