VB6進階一點的問題

因為我所有題目寫完之後剩下一些進階的題目不太會寫

思考了好幾天就是寫不出來, 希望有耐心的大大教會我

(1)英文字母大小寫判斷

設計一個程式求出有多少個字母其大小寫同時出現在此字串中

範例輸入:aaabbbcdedhdsajkdakljaksjdlaXXX 範例輸出:0

範例輸入:ASXBCCbbboioioca 範例輸出:3

這題我想的是分別把重複的小寫字串與大寫字串刪除在來判斷重複的Asc

但是不會寫

(2)判斷數列是否排序

數字與數字之間以空白鍵隔開,判斷是否為已排序數列,如果是,則是依遞增還 是遞減,反之則輸出「未排序」。

範例輸入:1 2 3 4 5 6 7 8 9 10 11 12   範例輸出:遞增

範例輸入:12 15 18 20 22 25 1 2 6 8 10 -2 範例輸出:未排序

範例輸入:6 5 4 3 2 1 -2 -5 -10 範例輸出:遞減

這題我不懂"以空白間隔開",這樣怎麼判斷,有什麼函數可以使用嗎 ?

我知道是要用Split,但是我Google了很多資料但卻不懂

目前先這兩題比較不懂得,剩下題目我先自己慢慢研究看看

1 個解答

評分
  • 阿戊
    Lv 7
    8 年前
    最佳解答

    '(一)

    'a = "aaabbbcdedhdsajkdakljaksjdlaXXX"

    'a = "ASXBCCbbboioioca"

    a = InputBox("請入字串:")

    c = 0

    For i = Asc("a") To Asc("z")

    If InStr(a, Chr(i)) <> 0 And InStr(a, UCase(Chr(i))) <> 0 Then c = c + 1

    Next i

    Debug.Print c

    '(二)

    'a = "1 2 3 4 5 6 7 8 9 10 11 12" '遞增

    'a = "12 15 18 20 22 25 1 2 6 8 10 -2" '未排序

    'a = "6 5 4 3 2 1 -2 -5 -10" '遞減

    a = InputBox("請入以空白分隔之數列:")

    b = Split(a, " ")

    ad = ""

    lad = ""

    For i = 0 To UBound(b) - 1

    If Val(b(i)) >= Val(b(i + 1)) Then ad = "遞減"

    If Val(b(i)) <= Val(b(i + 1)) Then ad = "遞增"

    If lad = "" Then lad = ad '記錄第1次的比較狀況

    If ad <> lad Then ad = "未排序": Exit For

    Next i

    Debug.Print ad

還有問題?馬上發問,尋求解答。