loops with incrementing strings .... ?

This is a discussion on loops with incrementing strings .... ? within the C++ Programming forums, part of the General Programming Boards category; Hi, I'm writing a program with 8 strings (from a to h) and I want to be able to edit ...

loops with incrementing strings .... ?

Hi, I'm writing a program with 8 strings (from a to h) and I want to be able to edit elements, copy elements and delete elements from one string to another what not. but the only way I can think of for doing it is to have loads of loops which makes the program very ineloquent and messy.

it's a very basic chess program. the user says they want to move (for example) from g1 to f1. I have a loop that goes something like

(wm is the white move [a string with two elements, a letter and number], mp is the moving piece, a, b, ... g, h are strings of 12 elements each)

Code:

if (wm[0]=='a')
{
mp=a[wm[1]-48];
a[wm[1]-48]=' ';
}

I have one of those for a, b, c, d,e, f, g and h, but I want a loop which will do it for me. this equates the moving piece (mp) to the element number you specify in wm[1] in a. as you can see with there being 8 strings, there are a lot of (8 of) these loops. is there a way to do a for loop for string names? If I do it with a letter, it won't work cause the letter is only a sincge character, not a string.

To loop from 'a' to 'h', it is pretty safe to have a char variable counter that is initialized to 'a', uses ++ to increment, and loops while it is less than or equal to 'h'.

This will fix the 'a' in the if statement above to be generic, but the problem is that you cannot do that with variable names. So your a array cannot be switched to the proper variable depending on the loop counter. To fix that you should nest your a through h arrays in another array. For example, have a 2-d array board variable that is [8][8], then the first index will be wm[0]-'a' and your second index will be wm[1]-'0' (you should use '0' instead of 48, it is more clear).

With that 2-D array you can just do mp = board[wm[0]-'a'][wm[1]-'0'] and you don't even need a loop at all.