How to write a function that goes through an array of
characters and eliminates any elements that are not letters
(Legal letters can be either in an uppercase or a
lowercase format.)
The function removeNonLetters should return the new
effective size of the array as the result.

Answers were Sorted based on User's Feedback



How to write a function that goes through an array of characters and eliminates any elements that ..

Answer / vivek

//This function returns true if valid character, else false
bool isCharacter(char unknownCharacter)
{

//Check whether the character falls between
// a ...z or A....Z
if( (unknownCharacter >= 'a' &&
unknownCharacter <= 'z') ||
unknownCharacter >= 'A' &&
unknownCharacter <= 'Z')
{

return true;

}
else
{

return false;

}


}

//This function removes non characters and returns array s
//effective size.
unsigned int removeNonCharacters(char *charArray, unsigned int arraySize)
{

//Lets decrement by non character as and when we identify
unsigned int effectiveArraySize = arraySize; .

//Algo: Traverse the array and in the mean time Identify
// non chars positions and move valid chars from right
// side of the array to fill those positions.

//used to traverse and mark valid chars.
unsigned int currentValidCharacterPosition = 0;

//Used to traverse and mark non valid character
unsigned int currentNonValidCharacterPosition = 0;


while( (currentValidCharacterPosition < arraySize) &&
(currentNonValidCharacterPosition < arraySize) )
{


if(isCharacter(charArray[currentValidCharacterPosition ])
{

//If we are here mean this is a valid character in
//the array, go to next character

currentValidCharacterPosition++;

}
else //This is a non character
{
//Mark the first non valid character position
currentNonValidCharacterPosition =
currentValidCharacterPosition ;

//move to findout valid character in the remaining
//array
while( (currentValidCharacterPosition <= arraySize) && (!isValidCharacter(characterArray[currentValidCharacterPosition]) )
{

--effectiveArraySize;

++currentValidCharacterPosition;
}//End While

//Check in the mean time whether we exhausted the
//array
if( currentValidCharacterPosition == arraySize)
{

return effectiveArraySize;

}//End If

//Move the valid character to fill the leftmost
//non valid character position.
characterArray[currentNonValidCharacterPosition]
= characterArray[currentValidCharacterPosition];

//Move on.
++currentValidCharacterPosition;

}//End Else (invalid character)


}//End While

return effectiveArraySize;
}

Is This Answer Correct ?    0 Yes 0 No

How to write a function that goes through an array of characters and eliminates any elements that ..

Answer / vivek

Please bear with indentation, treat charArray and characterArray as same.

Is This Answer Correct ?    0 Yes 0 No

Post New Answer

More STL Interview Questions

what is an algorithm in terms of STL?

1 Answers   Lucent, Wipro,


What are the different types of stl containers?

0 Answers  


what is the difference between thread and process

1 Answers   Infosys,


what is a template?

2 Answers   Amazon, BITS, IBS, Wipro,


How connect plc and pc through software

0 Answers  






why & sign is used in copy constructor

4 Answers  


Name the different types of stl containers.

0 Answers  


please visit this site you'll find my question this is my homework please answer it if you can http://easyscience.org/ib/lofiversion/index.php/t36168.html

0 Answers  


what is strcture i++ i ++i answer to this i=5 what is the out put

6 Answers  


Write a program in C++ to concatenate two strings into third string using pointers

5 Answers  


Define the terms: field, record, table and database

5 Answers  


what is template and type convertion

0 Answers   TATA,


Categories