У меня есть следующие строки:
std::string str1 = "1234567890";
std::string str2 = "B-XXXX_XXX_V-XX_X";
Я хочу от l oop до str2
и заменить каждое вхождение X последующим значением из str1
, в результате получится: B-1234_567_V-89_0
.
У меня есть подобие решения ниже, но оно не очень эффективно (в какой-то момент сработало). Вкратце, я попытался l oop через символы в str2
, и если символ равен 'X', замените этот символ на увеличивающийся индекс из str1
:
int ind = 0;
std::string pattern_char;
for (int i = 0; i < str2.size(); i++) {
pattern_char = str2[i];
if (pattern_char == "X") {
str2[i] = str1[x_ind];
x_ind++;
}
}
Что такое наиболее эффективный способ выполнить эту операцию?