English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

作業快寫完了就卡在一個問題
請會的人幫我解決一下
問題就是老師要我們
把\"InputBox\"(輸入)裡的Last Name的\"a\", \"c\", \"f\", \"s\", \"v\"小寫變大寫,大寫變小寫
例如:
按了之後
Sally Sivarajah變成 Sally siVArAjAh
或是在按一次
Sally siVArAjAh會變回Sally Sivarajah
拜託麻煩一下!!

2006-02-22 11:25:04 · 3 個解答 · 發問者 Anonymous in 電腦與網際網路 程式設計

我需要的是怎麼寫這個程式~

2006-02-22 12:14:54 · update #1

3 個解答

Private Sub Command1_Click()text_k1 = InputBox("請輸入英文全名")Label1.Caption = text_k1End SubPrivate Sub Command2_Click()text_k2 = ""For i = Len(Label1.Caption) To 1 Step -1   char_k = Mid(Label1.Caption, i, 1)   Select Case char_k          Case "a", "c", "f", "s", "v"                char_k = UCase(char_k)          Case "A", "C", "F", "S", "V"                char_k = LCase(char_k)          Case " "               Exit For   End Select   text_k2 = char_k & text_k2Next iLabel1.Caption = Left(Label1.Caption, Len(Label1.Caption) - Len(text_k2)) & text_k2End Sub

2006-02-21 21:48:58 · answer #1 · answered by 古雪飛 5 · 0 0

'我也來插花一下,可利用StrConv改變大小寫^^,表單置1個CommandButton跟1個TextBox

Private Sub Command1_Click()
Dim I As Integer, S As String
If Text1.Text = "" Then Exit Sub
S = Text1
For I = 1 To Len(S)
  If Asc(Mid$(S, I, 1)) > 96 Then
   Mid$(S, I, 1) = StrConv(Mid$(S, I, 1), vbUpperCase)
  Else
   Mid$(S, I, 1) = StrConv(Mid$(S, I, 1), vbLowerCase)
  End If
Next
Text1.Text = S
End Sub

2006-02-22 02:41:53 · answer #2 · answered by W.J.S. 7 · 0 0

作業要自己做~~~~~~~

說明一下這一題的做法好了,最主要是從ASC CODE去做判斷

先說明ASC是什麼,每一個字都有一個對應的內碼,也就是電腦認識的0和1,可以說是字母的身份証字號
英文及數字是ASC碼
繁體中文是Big 5碼

接者就要知道那個字母是那個ASC CODE
A -> 65 B->66 ..... Z-> 90
a -> 97 b->98 ...... z-> 122
那我們要怎麼使用呢,VB中提供一個函數 ASC() 可以取得字母所對應的 ASC CODE 例如:X=ASC("A") X傳回數值65 而 CHR()函數剛好相反 X=CHR(65) X傳回字元"A"
這裏有一個重要的地方,就是A和a之間有一個關連,就是ASC碼差32,同樣的Z和z也差32,程式就可以利用這樣的巧合來寫。

想法
(1)先讀取字串後用for...next一個字一個字轉
(2)使用ASC( )取得字元的ASC CODE如果落在66到90則+32轉回字元,反之落在98到122則-32再轉回字元
(3)轉完後再輸出到顯示表單


真的沒想到嗎,給你偷看一下程式好了:
Dim Name As String '存放轉換前姓名
Dim NewName As String '存放轉換後姓名
Dim GetChar As String '暫存取出的字元
Name = InputBox("請輸入一個姓名")
For i = 1 To Len(Name)
GetChar = Mid(Name, i, 1) '取得字元
If Asc(GetChar) >= 65 And Asc(GetChar) <= 90 Then
GetChar = Chr(Asc(GetChar) + 32)
ElseIf Asc(GetChar) >= 97 And Asc(GetChar) <= 122 Then
GetChar = Chr(Asc(GetChar) - 32)
End If
NewName = NewName & GetChar
Next
x = MsgBox(NewName, vbOKOnly, "大小寫轉換後")

希望對你有所幫助

2006-02-23 10:46:22 補充:
哈哈,我題目看錯了,原來只有"a", "c", "f", "s", "v"五個字要換.... 雨煙布翔 的解答才是你要的。

2006-02-21 20:19:33 · answer #3 · answered by 智障無腦工程師 3 · 0 0

fedest.com, questions and answers