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
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]