2016-01-06 8 views
0

я есть функция в попытке поймать и последний блок я знаю, что функция всегда будет использовать, наконец, блок кода, но при этом следует добавить символ я не хотите, чтобы использовать во время циклаBrut force добавить символы из массива? как

string increse_me ; 
public void brut() 
{ 
    string[] small = new string[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }; 
    string[] cap = new string [] {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; 
    string[] num = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}; 
    string[] spcl = new string[] { "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "`", ">", "<", "+" }; 

    if(textbox1.Text == increase_me) 
    { 
     messagebox.show("matched") 
    } 
    catch (exception ex) 
    { 
    } 
    finally 
    { 
     brut(); 
    //here i have to call function again with increase letter as start from "a"it add next to it 
    } 
} 

Теперь, как сделать функцию, использовать строку объявлена ​​increase_me в первый раз, а также увеличить свою ценность, когда, наконец, не удается из второго arrray и так далее до 26 макс значных

+1

Если вы хотите написать метод, который перемещает строку, следующую перестановку с каждым вызовом, вам нужно будет проверить последний символ текущей строки (например, ''! "' '' Asd123B! "'), и выполнить опрокидывание ('' B + "' становится '' Ca "'). Это выполнимо, но я надеюсь, вы не ожидаете, что мы напишем этот метод для вас. – CodeCaster

+3

Вы знаете, что у этого будут проблемы с переполнением стека из-за бесконечной рекурсии? –

+1

Трудно сказать, что вы просите, но я думаю, вы просто ищете нечто похожее на «[Создать все комбинации для списка строк] (http://stackoverflow.com/questions/10515449/generate-all- комбинации-для-списка-строк) « –

ответ

0

на интуитивном уровне, вы могли бы просто передать массив и строку и вернуть обновление d строка с первым элементом добавляется:

string stringUpdate(string update, string[] toAdd) 
{ 
    if (toAdd!=null && toAdd.length>0) { 
      return update+toAdd[0]; 
    } 
    return update; 
} 

Это позволило бы сделать brut() должны быть умными о том, что необходимо передать в функцию так, чтобы она не проходит в пустых массивов, хотя бы просто возвращает первую строку, если это так. Конечно, это всего лишь часть общего решения, так как я бы заподозрил, что регулярное выражение будет гораздо более простым решением, но здесь этого не было задано.