#include <vector>
#include <cstdio>
class ABC
{
protected :
std:: vector < char > ABCs;
int currentLetter;
public :
ABC( ) : currentLetter( 0 ) { }
void AddLetter( char Letter )
{
ABCs.push_back ( Letter ) ;
}
char getLetter( int position )
{
return ABCs.at ( position ) ;
}
int getLetterPosition( )
{
return currentLetter;
}
void setLetterPosition( int newPosition )
{
currentLetter = newPosition;
}
} ;
void printSentence( ABC * alphabet, int limit )
{
for ( int i = 0 ; i < limit; i + = 2 )
{
printf ( "The current letter is %c, the letter after is %c \n " , alphabet- > getLetter( alphabet- > getLetterPosition( ) ) , alphabet- > getLetter( alphabet- > getLetterPosition( ) + 1 ) ) ;
alphabet- > setLetterPosition( alphabet- > getLetterPosition( ) + 2 ) ;
}
}
int main( )
{
ABC alphabet;
ABC * alphabetPointer = & alphabet;
for ( char letter = 'a' ; letter < 'z' ; letter++ )
{
alphabet.AddLetter ( letter ) ;
}
printf ( "%s\n " , "printSentence() with param of four letters." ) ;
printSentence( alphabetPointer, 4 ) ;
//again
printf ( "%s\n " , "printSentence() with param of six letters." ) ;
printSentence( alphabetPointer, 6 ) ;
return 0 ;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGNzdGRpbz4KCmNsYXNzIEFCQwp7Cgpwcm90ZWN0ZWQ6CgogICBzdGQ6OnZlY3RvcjxjaGFyPiBBQkNzOwoKICAgaW50IGN1cnJlbnRMZXR0ZXI7CgpwdWJsaWM6CgogICBBQkMoKTpjdXJyZW50TGV0dGVyKCAwICl7fQoKICAgdm9pZCBBZGRMZXR0ZXIoIGNoYXIgTGV0dGVyICkKICAgewogICAgICAgQUJDcy5wdXNoX2JhY2soIExldHRlciApOwogICB9CgogICBjaGFyIGdldExldHRlciggaW50IHBvc2l0aW9uICkKICAgewogICAgICAgcmV0dXJuIEFCQ3MuYXQoIHBvc2l0aW9uICk7CiAgIH0KCiAgIGludCBnZXRMZXR0ZXJQb3NpdGlvbigpCiAgIHsKICAgICAgIHJldHVybiBjdXJyZW50TGV0dGVyOwogICB9CiAgIAogICB2b2lkIHNldExldHRlclBvc2l0aW9uKCBpbnQgbmV3UG9zaXRpb24gKQogICB7CiAgICAgICBjdXJyZW50TGV0dGVyID0gbmV3UG9zaXRpb247CiAgIH0KICAgCn07Cgp2b2lkIHByaW50U2VudGVuY2UoIEFCQyAqIGFscGhhYmV0LCBpbnQgbGltaXQgKQp7CiAgIGZvciggaW50IGkgPSAwOyBpIDwgbGltaXQ7IGkgKz0gMiApCiAgIHsKICAgICAgIHByaW50ZiggIlRoZSBjdXJyZW50IGxldHRlciBpcyAlYywgdGhlIGxldHRlciBhZnRlciBpcyAlYyBcbiIsIGFscGhhYmV0LT5nZXRMZXR0ZXIoIGFscGhhYmV0LT5nZXRMZXR0ZXJQb3NpdGlvbigpICksIGFscGhhYmV0LT5nZXRMZXR0ZXIoIGFscGhhYmV0LT5nZXRMZXR0ZXJQb3NpdGlvbigpICsgMSApICk7CiAgICAgICAKICAgICAgIGFscGhhYmV0LT5zZXRMZXR0ZXJQb3NpdGlvbiggYWxwaGFiZXQtPmdldExldHRlclBvc2l0aW9uKCkgKyAyICk7CiAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBBQkMgYWxwaGFiZXQ7CiAgICBBQkMgKiBhbHBoYWJldFBvaW50ZXIgPSAmYWxwaGFiZXQ7CgogICAgZm9yKCBjaGFyIGxldHRlciA9ICdhJzsgbGV0dGVyIDwgJ3onOyBsZXR0ZXIrKyAgKQogICAgewogICAgICAgICBhbHBoYWJldC5BZGRMZXR0ZXIoIGxldHRlciApOwogICAgfQogICAgCiAgICBwcmludGYoICIlc1xuIiAsICJwcmludFNlbnRlbmNlKCkgd2l0aCBwYXJhbSBvZiBmb3VyIGxldHRlcnMuIiApOwogICAgcHJpbnRTZW50ZW5jZSggYWxwaGFiZXRQb2ludGVyLCA0ICk7CiAgICAKICAgIC8vYWdhaW4KICAgIHByaW50ZiggIiVzXG4iICwgInByaW50U2VudGVuY2UoKSB3aXRoIHBhcmFtIG9mIHNpeCBsZXR0ZXJzLiIgKTsKICAgIHByaW50U2VudGVuY2UoIGFscGhhYmV0UG9pbnRlciwgNiApOwoKICAgIHJldHVybiAwOwp9