non incrementing loop - Programmers Heaven

Howdy, Stranger!

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

Categories

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.