Все слова, длиной более пяти символов, начинать с прописной буквы - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день! Требуется написать программу в VBA: Дан текст, слова которого отделяются друг от друга пробелами. Вывести исходный текст, таким образом, чтобы все слова, длиной более пяти символов, начинались бы с прописной буквы. Я написал, но у меня выходит что все слова выводит с прописной буквы, как изменить мой код-формирование строки вывода (именно изменит мой) чтоб только слова длинной более 5 выводило с прописной ?
Листинг программы
  1. Private Sub CommandButton1_Click()
  2. Dim str, str1 As String
  3. Const N = 100
  4. Dim M(N) As String
  5. Dim str_v As String
  6. str = TextBox1.Value
  7. 'Просмотр всех символов строки
  8. j = 1
  9. str = LTrim(str) ' удалить начальные пробелы из строки
  10. For i = 1 To Len(str)
  11. If Mid(str, i, 1) <> " " Then
  12. M(j) = M(j) + Mid(str, i, 1)
  13. Else
  14. ' если слова отделены между собой несколькими пробелами то пропустить эту последовательность
  15. While Mid(str, i + 1, 1) = " "
  16. i = i + 1
  17. Wend
  18. ' подсчитывать слова только если за последовательностью пробелов следует слово
  19. If Mid(str, i + 1, 1) <> "" Then
  20. j = j + 1
  21. End If
  22. End If
  23. Next i
  24. ' Формирование строки для вывода
  25. For i = 1 To j
  26. str_v = str_v & StrConv(M(i), vbProperCase) & " "
  27. Next i
  28. TextBox2.Value = str_v
  29. End Sub
  30. Private Sub TextBox1_Change()
  31. End Sub

Решение задачи: «Все слова, длиной более пяти символов, начинать с прописной буквы»

textual
Листинг программы
  1. Private Sub CommandButton1_Click()
  2. Dim sp
  3. Dim str, str1 As String
  4. Const N = 100
  5. Dim M(N) As String
  6. Dim str_v As String
  7. str = TextBox1.Value
  8.  'Просмотр всех символов строки
  9. j = 1
  10. str = LTrim(str) ' удалить начальные пробелы из строки
  11. For i = 1 To Len(str)
  12.     If Mid(str, i, 1) <> " " Then
  13.         M(j) = M(j) + Mid(str, i, 1)
  14.     Else
  15. ' если слова отделены между собой несколькими пробелами то пропустить эту последовательность
  16.        While Mid(str, i + 1, 1) = " "
  17.             i = i + 1
  18.          Wend
  19.         ' подсчитывать слова только если за последовательностью пробелов следует слово
  20.        If Mid(str, i + 1, 1) <> "" Then
  21.             j = j + 1
  22.         End If
  23.     End If
  24. Next i
  25. ' Формирование строки для вывода
  26. sp = Split(TextBox1.Value, "")
  27. For j = 0 To UBound(sp)
  28.   If Len(Replace(sp(j), ",", "")) > 5 Then 'если длина строки без запятых больше 5 символов то
  29.            sp(j) = UCase(Left(sp(j), 1)) & Right(sp(j), Len(sp(j)) - 1) 'делаем первую букву прописной
  30.        End If
  31.     Next
  32. TextBox2.Value = Join(sp, " ")
  33. End Sub
  34.  
  35. Private Sub TextBox1_Change()
  36.  
  37. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы