Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Loop efficiency - C++

Beginners question, on loop efficiency. I've started programming in C++ (my first language) and have been using 'Principles and Practice Using C++' by Bjarne Stroustrup. I've been making my way through the earlier chapters and have just been introduced to the concept of loops.

The first exercise regarding loops asks of me the following: The character 'b' is char('a'+1), 'c' is char('a'+2), etc. Use a loop to write out a table of characters with their corresponding integer values:

a 97, b 98, ..., z 122

Although, I used uppercase, I created the following:

int number = 64; //integer value for @ sign, character before A
char letter = number;//converts integer to char value
int i = 0;

while (i<=25){
    cout << ++letter << "\t" << ++number << endl;
    ++i;
    }

Should I aim for only having 'i' be present in a loop or is it simply not possible when converting between types? I can't really think of any other way the above can be done apart from having the character value being converted to it's integer counterpart(i.e. opposite of current method) or simply not having the conversion at all and have letter store '@'.

like image 708
SlackerByNature Avatar asked Jan 22 '10 09:01

SlackerByNature


1 Answers

Following on from jk you could even use the letter itself in the loop (letter <= 'z'). I'd also use a for loop but that's just me.

for( char letter = 'a'; letter <= 'z'; ++letter )
    std::cout << letter << "\t" << static_cast<int>( letter ) << std::endl;
like image 119
Patrick Avatar answered Sep 20 '22 13:09

Patrick