C++ program help

Knight7770

Hippopotomonstrosesquiped aliophobia
I'm making a program that generates random acronyms based on the letters you want it to form. So far, I only have the basic stuff (not all the words have been added yet, nor all the grammar check stuff). However, there is a bug with the current grammar check implementation, which adds "ly" to the end of any adjective that comes before another adjective. However, instead of just adding one "ly", it adds 4 or 5.
What it should be:
Abbevillianly
Abdominal
Abating
Abbevillian
Abacus
What it is:
Abbevillianlylylyly
Abdominal
Abating
Abbevillian
Abacus
Here is the code so far (without all the variable declarations):
http://nopaste.dk/p358

a_noun, a_verb, and a_adj are all string variables.
 

enouwee

Non ex transverso sed deorsum
What a mess... I can't even figure out what that thing is supposed to do.

If you only want one "ly", put a break inside your conditional statement in edit_acronym().
 

enouwee

Non ex transverso sed deorsum
Mind posting your "fixed" code, so I can verify for myself that you added it to the wrong place?
 

enouwee

Non ex transverso sed deorsum
what's this supposed to do? :rolleyes:


Code:
void edit_acronym(std::string acronym[total_acronym_letters], int a[total_acronym_letters], int b)
{
  for(int x=0;x<b;x++)
  // ...
 

enouwee

Non ex transverso sed deorsum
What a surprise ... you'd avoid such situations altogether by writing clean code. And avoid using global variables, wrong/insuccifient bound checks, uninitialized variables, etc.

If you're choosing C++, at least make use of classes. You don't need any global variables in that case.


Somewhat cleaned up. You have to add your Windows-specific stuff back.

Code:
#include <iostream>
#include <time.h>
//#include <conio.h>
#include <string>
#include <stdlib.h>
#include <ctype.h>

const int total_acronym_letters = 5;
std::string acronym[total_acronym_letters];

std::string a_noun[total_acronym_letters];
std::string a_verb[total_acronym_letters];
std::string a_adj[total_acronym_letters];
int pre_acronym[total_acronym_letters];
int part_speech[total_acronym_letters];

void create_acronym(std::string &acronym, int pos)
{
	std::string* source;

	if(acronym != "a")
	{
		std::cout<<"Error 23789: You have entered an incorrect character.\n";
//		_getch();
		return;
	}

	switch (part_speech[pos] = rand() % 3)
	{
		case 0:
			source = a_noun;
			break;
		case 1:
			source = a_verb;
			break;
		default:
			source = a_adj;
	}

	acronym = source[rand() % 3];
	if (pos > 0 && part_speech[pos - 1] == 2 && part_speech[pos] == 2)
	{
		acronym += "ly";
	}
}

void letter_a()
{
	//Nouns
	a_noun[0]="Aardvark";
	a_noun[1]="Aardwolf";
	a_noun[2]="Aba";
	a_noun[3]="Abaca";
	a_noun[4]="Abacus"; //pg 2
	//Verbs
	a_verb[0]="Abandoning";
	a_verb[1]="Abasing";
	a_verb[2]="Abashing";
	a_verb[3]="Abating";
	a_verb[4]="Abbreviating"; //pg 2
	//Adjectives
	a_adj[0]="Abandoned";
	a_adj[1]="Abaxial";
	a_adj[2]="Abbatial";
	a_adj[3]="Abbevillian";
	a_adj[4]="Abdominal"; //pg 2
}

//============================================================
int main(int argc, char** argv)
{
	int i;
	int acronym_length;
	char pre_acronym[total_acronym_letters] = {'\0'};

	std::cout<<"Welcome to Knight7770's Acronym Generator.\nHow many letters are there in your acronym?\nWARNING: Can be no more than "<<total_acronym_letters<<" letters!!\n";
	std::cin >> acronym_length;
	std::cout<<"Please enter the letters you would like to form your acronym\ni.e. USA or EU\n";

	if (acronym_length <= 0)
	{
		acronym_length = 1;
	}
	else if (acronym_length > 5)
	{
		acronym_length = 5;
	}

	letter_a();
	srand(time(NULL));

	for(i = 0; i < acronym_length; i++)
	{
		std::cin >> pre_acronym[i];
	}	
//	system("cls");

	for(i = 0; i < acronym_length; i++)
	{
		acronym[i] = tolower(pre_acronym[i]);
		create_acronym(acronym[i], i);
		std::cout << acronym[i] << "\n";
	}

//	_getch();

	return 0;
}
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • The Helper The Helper:
    that field is going to explode and though there is competition there is going to be room for all levels in the coming years imho.
  • tom_mai78101 tom_mai78101:
    Why are we competing for rough mornings? :(
  • Varine Varine:
    I don't want to compete for that, yall can have it.
  • Varine Varine:
    @The Helper I'm trying. Once I am more prepared to be figuring out school I'll probably ask for your advice
  • Varine Varine:
    Right now I'm just trying to get through the pandemic and figure out how I'm going to pay for it, and figure out what I need to get a job at Best Buy instead of a kitchen somewhere.
  • thewrongvine thewrongvine:
    oy just catching up on the discussion above. @Varine yeah I usually alternate between claritin & zyrtec, depending on whatever my body decides to reject at the time lol
  • thewrongvine thewrongvine:
    the more I use it the less effective it gets over time as my body accustoms to it so I try to not use it every day
  • S songbird:
    Glad to see some interest in the IS3 NUON reprint. :)
    +1
  • The Helper The Helper:
    Thank you Carl for making that happen that just might be the spark we need.
  • Varine Varine:
    I'm confused and amazed that NUON and TWV's news postings are the things still active.
  • Varine Varine:
    Or Tom Mai, not TWV
  • Varine Varine:
    Whatever happened to Cheshire? Or Firecat, whatever his real name was?
  • Varine Varine:
    I've been using both claritin and fexofenadine or something like that recently alternately and that's been kinda working, I don't feel like my face is going to explode at least. Eyes are still itchy as fuck though
  • tom_mai78101 tom_mai78101:
    I dunno, haven't seen Firecat in a long while now.
  • tom_mai78101 tom_mai78101:
    By the way, we have new file attachment size limits now.
  • Varine Varine:
    Are they bigger?
  • tom_mai78101 tom_mai78101:
    Yeah, new max size limit is 64 MB, to accommodate NUON-Dome emulation.
  • Varine Varine:
    I don't think I ever ran into a file size problem before. What was it before?
  • Varine Varine:
    I've had file type issues before I think, but I haven't uploaded anything since like 2010.
  • The Helper The Helper:
    alot smaller than that basically barely anything and it would have been different then 2010 because of the forum upgrade
  • Varine Varine:
    lol I forgot this used to look different
  • Varine Varine:
    It's by far the brightest webpage I regularly visit, the first thing I usually do is try to figure out dark mode.
  • tom_mai78101 tom_mai78101:
    If you invert the colors, The Helper Forums looks amazing
  • tom_mai78101 tom_mai78101:
    It still has that blue theme at the top
  • Ghan Ghan:
    There's no particular hard limit to attachments. "Something reasonable" is preferred to "a size large enough to fill up the server disk"

    Members online

    No members online now.

    Affiliates

    Hive Workshop
    Top