2013-10-27 2 views
1

У меня возникли проблемы с заполнением пустых элементов массива в массиве char.Visual Basic, добавление значений для пустых элементов массива char

У меня есть inputArray, который будет хранить все символы, которые я типа для myInput в массив. Затем я создал charArray, который примет символы от inputArray, а затем, если он не встречает ничего в массиве, я хочу добавить -1, чтобы сигнализировать пустое место в моем charArray. Я не смог этого сделать. Я печатаю «Привет», он вернет мне обратно

H 
E 
L 
L 
O 
Space 
Space 
Space 
Space 
And So On, until I reach the end of that array. 
*"Space" is for visual aid of output 

Я потерян. Я хочу, чтобы можно было отфильтровать «-1», а не считать количество символов подчеркивания, которые мне нужно внести в слово, например «Hello» будет _ _ _ _ _ (исключая элементы с «-1» или ничего внутри.)

Module GuessingGame 
     Sub Main() 
      Dim myInput As String. 
      Dim inputArray(11) As Char 
      Dim charArray(11) As Char 
      Dim myLetter As String 
      Dim attempts As Integer = 0 
      Dim incorrectAttempts As Integer = 0 
      Dim remainingAttempts As Integer = 0 

      myInput = InputBox$("Please enter a word or phrase: ") 
      inputArray = myInput.ToCharArray() 

      While inputArray.Length > 12 
       System.Console.WriteLine("Error: The word or phrase needs to be 12 characters or less") 
       myInput = InputBox$("Please enter a word or phrase: ") 
       inputArray = myInput.ToCharArray() 
      End While 

      For i = 0 to inputArray.length - 1 
       If IsNothing(inputArray(i)) Then 
        charArray(i) = "-1" 
       Else 
        charArray(i) = inputArray(i) 
       End If 
      Next 

      Console.Clear() 

      For Each element In charArray 
       System.Console.WriteLine(element) 
      Next element 

      For i = 0 to inputArray.length - 1 
       remainingAttempts = remainingAttempts + 1 
      Next 

      remainingAttempts = remainingAttempts - 1 

      System.Console.WriteLine("Guessing Game Display") 
      System.Console.WriteLine("---------------------") 
      System.Console.WriteLine("Number of Remaining Attempts: " & remainingAttempts) 
      System.Console.WriteLine("Number of Incorrect Attempts: " & incorrectAttempts) 
      System.Console.WriteLine("Number of Attempts: " & attempts) 
      System.Console.WriteLine("Guess a Character? ") 
      myLetter = InputBox$("Please enter a character: ") 
     End Sub 
    End Module 

ответ

0

Я не 100%, но я довольно уверен, что IsNothing проверяет, чтобы увидеть, если есть значение вообще .. Так как вы автоматически назначая массив размером 11 что-либо после того, как HELLO будет настроено, но либо «или», либо просто пустое пространство. Так что попробуйте сделать это

If inputArray(i) == "" Then 
       charArray(i) = "-1" 
      Else 
       charArray(i) = inputArray(i) 
      End If 
+0

Я пробовал исправить, но я все время получал ошибку Expression Expected. Даже если я изменю его на одиночный «=», он все еще читает их как пробел или пробел. –

+0

О да, VB - это сингл «=», который вы пробовали делать = "" и = "" или с помощью инструкции или? – Chitowns24

0

Я думаю, что ваш код работает нормально, он должен печатать -1, когда есть пробел в integerArray. Но ниже код и должно изменить его:

While inputArray.Length > 12 
    System.Console.WriteLine("Error: The word or phrase needs to be 12 characters or less") 
    myInput = InputBox$("Please enter a word or phrase: ") 
    '**/*it is better to remove these two code and replace it by goto above*/** 
    inputArray = myInput.ToCharArray() 
End While 
0

мне удалось добиться того, что я хотел сначала создать массив символов, который будет иметь ввод слова, чтобы догадаться. Затем создайте строковые массивы, которые имеют значения из массива char и единицы, которые я буду использовать для массива предположений для сравнения с первым массивом строк.

Это была проблема, связанная с этой проблемой.

Смежные вопросы