Можно ли изменять тип переменной к которой мы обращаемся у структуры в цикле?

struct stringTable {
string surname;
string name;
string patronymic;
    int hash;
};
void seperation(string text, stringTable &personality){
    for (int i = 0; i < text.size(); i++) {
        bool skipSurname = false;
        bool skipName = false;
        if (text[i] != ' ' && !skipSurname) {
            personality.surname += text[i];
        }
        if (text[i] == ' ') {
            skipSurname = true;
            continue;
        }
        if (text[i] != ' ' && skipSurname && !skipName) {
            personality.name += text[i];
        }
        if (text[i] == ' ') {
            skipName = true;
            continue;
        }
        if (text[i] != ' ' && skipSurname && skipName) {
            personality.patronymic += text[i];
        }
    }
};

В задании существует некоторая база данных, состоящая из таблицы, в строках которой находится ФИО, между словами стоит 1 пробел. Я считываю строку в string, а затем хочу заполнить собственную структуру на раздельные слова. Для этого я написал функцию seperation, которая кажется мне длинной из-за различных булевых переменных. Я задумался вопросом: "А возможно ли менять динамически тип переменной, к которой я хочу обращаться?" Т.е. я хотел, чтобы у меня существовал массив имен переменных в структуре, которым я мог пользоваться, чтобы менять их и обращаться к различным переменным. Если моя идея покажется непонятной, то я просто хотел бы увидеть более оптимизированный вариант заполнения моей структуры строкой.


Ответы (0 шт):