C ++ Вставить случайную строку в несколько мест другой строки, используя цикл - PullRequest
0 голосов
/ 02 марта 2020

Я написал этот код внизу, и я хочу, чтобы он вставил случайную строку r в мою строку str и несколько установленных интервалов или через несколько случайных интервалов. Это очень неуклюже, и мне нужно будет увеличить его до 1000 символов, иначе это не решит мою проблему. Есть ли кто-нибудь, кто может помочь мне поместить это в oop? Я хочу использовать длину моей строки, чтобы определить размер l oop и увеличение на 15 символов в моей функции произвольной вставки. Я попробовал все oop, и это не удалось.

int main() {
string str;
int len;
int randNum;
char x;
char x1;
char x2;
char x3;
char x4;
char x5;
char x6;
string str1;
string str2;
string str3;
string str4;
string str5;
string str6;

str = "This is just a random string of text! I have extended it just to test my code.";

//works great
char letters[] = "abcdefghijklmnopqrstuvwxyz";
srand(time(0));

len = str.length();
randNum = len/2;

cout << str << endl;
cout << len << endl;
cout << randNum << endl;

if (randNum >= 100){     // Need help with using a loop for this if function
  char x = letters[rand() % 26];
  char y = letters[rand() % 26];
  char z = letters[rand() % 26];
  string r;
  r = ".";
  r += x;
  r += y;
  r += z;
  str.insert(randNum % 10 + 100, r);
  str1 = str;
}
else{
  str1 = str;
}
  if (randNum >= 85){
    char x1 = letters[rand() % 26];
    char y1 = letters[rand() % 26];
    char z1 = letters[rand() % 26];
    string r2;
    r2 = ".";
    r2 += x1;
    r2 += y1;
    r2 += z1;
    str1.insert(randNum % 10 + 85,r2);
    str2 = str1;  
  }
  else{
    str2 = str1;
  }
    if (randNum >= 60){
      char x2 = letters[rand() % 26];
      char y2 = letters[rand() % 26];
      char z2 = letters[rand() % 26];
      string r3;
      r3 = ".";
      r3 += x2;
      r3 += y2;
      r3 += z2;
      str2.insert(randNum % 10 + 60,r3);
      str3 = str2;
    }
    else{
      str3 = str2;
    } 
      if (randNum >= 45){
        char x3 = letters[rand() % 26];
        char y3 = letters[rand() % 26];
        char z3 = letters[rand() % 26];
        string r4;
        r4 = ".";
        r4 += x3;
        r4 += y3;
        r4 += z3;
        str3.insert(randNum % 10 + 45,r4);
        str4 = str3;
      }
      else{
        str4 = str3;
      }
        if (randNum >= 30){
          char x4 = letters[rand() % 26];
          char y4 = letters[rand() % 26];
          char z4 = letters[rand() % 26];
          string r5;
          r5 = ".";
          r5 += x4;
          r5 += y4;
          r5 += z4;
          str4.insert(rand() % 10 + 30,r5);
          str5 = str4; 
        }
        else{
          str5 = str4;
        }
          if (randNum >= 15){
            char x5 = letters[rand() % 26];
            char y5 = letters[rand() % 26];
            char z5 = letters[rand() % 26];
            string r6;
            r6 = ".";
            r6 += x5;
            r6 += y5;
            r6 += z5;
            str5.insert(rand() % 10 + 15,r6);
            str6 = str5;
          }
          else{
            str6 = str5;
          }
            if (randNum >= 0){
              char x6 = letters[rand() % 26];
              char y6 = letters[rand() % 26];
              char z6 = letters[rand() % 26];
              string r7;
              r7 = ".";
              r7 += x6;
              r7 += y6;
              r7 += z6;
              str6.insert(rand() % 10,r7);
            }
            else{
              return 0;
            }

cout << str6 <<endl;
...