Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

non incrementing loop

Good Morning:
I have been working on this function for two days and I cannot get it to run correctly. It becomes a runaway. Can someone please help me? Here are the instructions for the function:
Write a function named analyzeString. This function is passed a null terminated string as the first parameter. The function uses 3 reference parameters to return the number of vowels, the number of consonants, and the number of separator characters. Assume a separator character is a space, a tab, or a newline. The function declaration is as follows:
void analyzeString (char inputString [], int & numVowels, int & numConsonants, int & numSeparators);
Here is the code that I have so far:

[code][/code]/* This program will test the
"void analyzeString ( char inputString [], int & numVowels,
int & numConsonants, int & numSeparators)" function*/
#include
using namespace std;

void analyzeString ( char inputString [], int & numVowels,
int & numConsonants, int & numSeparators);
void main()
{
const int SIZE = 100;
char inputString [SIZE] = {'l', 'D', ' ', ' ', 's','P',''};
int numVowels, numConsonants, numSeparators;
numVowels = numConsonants = numSeparators = 0;

analyzeString (inputString, numVowels,
numConsonants, numSeparators);
cout << numVowels <<'
';
cout <<numConsonants <<'
';
cout <<numSeparators <<'
';
}


* This function will count the number of vowels,
consonants, and separator characters in a string */

#include <iostream>
using namespace std;

void analyzeString ( char inputString [], int & numVowels, int & numConsonants, int & numSeparators)
{
char ch;
ch = inputString[0];
numVowels = 0;
numConsonants = 0;
numSeparators = 0;
int increment = 0;

cout << "in funct
";
while ( ch != '')
{
if ( ch == 65 || ch == 69 || ch == 73 || ch == 79 || ch == 85 || //check for vowels
ch == 97 || ch == 101 || ch == 105 || ch == 111 || ch == 117)
numVowels++;

if (( ch != 65 && ch != 69 && ch != 73 && ch != 79 && ch != 85 && //check for consonants
ch != 97 && ch != 101 && ch != 105 && ch != 111 && ch != 117)
&& (ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122))
numConsonants++;

else
numSeparators++;
} inputString [increment++];

}[code][/code]

The loop does not increment, it is a runaway.

Comments

  • Les2012Les2012 Posts: 2Member
    HEllo:

    Ok, I fixed the runaway problem but the function does not increment the
    correct array elements. Does anyone have any suggestions? Here is the new code:
    [code]void getCharacterFrequency (char inputString[], unsigned int frequency[])
    {
    char ch;
    int index1 = 0;
    int index2 = 0;
    const int SIZE = 26;

    while (index1 < SIZE)
    {
    frequency[index1] = 0; // This is to initilize the frequency array values to zero
    index1++;
    }

    ch = inputString[index2];
    while (ch != '')
    {
    if (ch >= 65 && ch <= 90)
    {
    frequency[ch - 65]++;
    }
    else if (ch >= 95 && ch <= 122)
    {
    frequency[ch - 95]++;
    }
    ch = inputString[++index2];
    }

    }[/code]
Sign In or Register to comment.