Точки с запятой имеют абсолютно нет значение в строках C; они просто нормальные персонажи. Если вам нужно поставить обратную косую черту в строке, потому что это требуется позже, то обратная косая черта требует обратной косой черты впереди.
std::string str("text1\\; text2\\;");
Это потому, что \;
не является распознанной escape-последовательностью в C ++; компилятор справедливо хочет знать, о чем вы говорите, когда вставляете это.