Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 13
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    cần giúp đỡ của cộng đồng c Việt dùng câu lệnh switch case nhé !

    giúp mình dùng câu lệnh switch case nhé
    câu hỏi: kiểm tra một ký tự nhập vào thuộc tập hợp nào trong các ký tự sau:
    các ký tự chữ hoa A--Z
    Các ký tự chữ thường a--z
    các ký tự số 0--9
    các ký tự khác
    giúp đỡ giùm mình nhé

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn vui lòng đặt lại tiêu đề, cái này sao lại liên quan gì đến graphics ??
    Theo mình biết thì chỉ có ngôn ngữ visual basic mới có thể thực hiện được switch case theo dạng khoảng. C# ko làm được điều này. Dĩ nhiên nếu như bạn đủ siêng năng, bạn vẫn có thể thực hiện switch case bằng cách nêu hết tất cả các trường hợp ra. Đối với trường hợp này, mình nghĩ nên dùng cấu trúc if ... else if ... else để thực hiện.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    hix hix.bài này mình nghĩ nát óc không ra phương pháp làm.có ai bít chỉ mình với

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ngoctu_93
    giúp mình dùng câu lệnh switch case nhé
    câu hỏi: kiểm tra một ký tự nhập vào thuộc tập hợp nào trong các ký tự sau:
    các ký tự chữ hoa A--Z
    Các ký tự chữ thường a--z
    các ký tự số 0--9
    các ký tự khác
    giúp đỡ giùm mình nhé
    nhìn cái tiều đề là mất cảm tình ràu, cậu xem bảng mã ascii nha :|, chuyển char sang int ràu so sánh với mã.

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình chỉ có thể giúp bạn cách làm if...else thôi

    Mã:
    string s = textBox1.Text;            textBox2.Text = "";            textBox3.Text = "";            textBox4.Text = "";            textBox5.Text = "";                        foreach (char kitu in s)            {                if (kitu >= 'A' && kitu <= 'Z')                    textBox2.Text += kitu;                else                    if (kitu >= 'a' && kitu <= 'z')                        textBox3.Text += kitu;                    else if (kitu >= '0' && kitu <= '9')                        textBox4.Text += kitu;                                        else textBox5.Text += kitu;               }

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    mình thấy dùng phương thức Contains của String thấy cũng OK đó.
    Mã:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication7
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            string[] a = { "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[] b = { "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[] c = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
            string k, l, m, n;
            private void button1_Click(object sender, EventArgs e)
            {
                richTextBox2.Clear();
                k = "";
                l = "";
                m = "";
                for (int i = 0; i < a.Length; i++)
                {              
                    for (int j = 0; j < c.Length; j++)
                    {
                        if (richTextBox1.Text.Contains(a[i]) == true)
                        {
                            k = "chuỗi chứa kí tự viết hoa";
                        }
                        if (richTextBox1.Text.Contains(b[i]) == true)
                        {
                            l = "chuỗi chứa kí tự thường";
                        }
                        if (richTextBox1.Text.Contains(c[j]) == true)
                        {
                            m = "chuỗi chứa kí tự số";
                        }                   
                    }
                }
                richTextBox2.Text = k + "
    " + l + "
    " + m+"
    ";
            }
        }
    }
    còn trường hợp kí tự khác bạn có thể khai báo thêm mảng chứa các kí tự đó (xem bảng mà ASCII) rồi cũng lệnh if thêm vòng lặp nữa
    (xem coi mảng nào nhiều nhất thì cho lặp trước)


    KẾT QUẢ:
    [IMG]http:/d1.upanh.com/b4.s15.d2/2ae4f8f50c7678f0c59ef81eb3f844d5_35651321.a.bmp[/IMG]

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    xem ma cha hieu gi het, phai di hoc C nhanh nhanh moi dc[IMG]images/smilies/Surprised.gif[/IMG]

  8. #8
    Trong C/C++ và C#, muốn dùng switch-case để tính xem một số có nằm trong một khoảng thì người ta dùng con toán

    so sánh = (trị - 1) / khoảng


    Mã:
    // vd trị là x và khoảng là 50 thì switch ( (x-1)/50 ){  case 0: // 1-50  case 1: // 51-100  case 2: // 101-150}
    Cách thức trên dùng cho khoảng đều nhau. Mã ASCII không đều nhau nên cần phải thêm một vài thủ thuật.

  9. #9
    Cái này thì C# có thư viện sẵn rồi. Bạn sử dụng các hàm trong lớp char.
    Ví dụ kiểm tra có phải số hay kg
    Mã:
    char.IsDigit("ký tự");

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Người ta hỏi cách giải quyết bằng switch-case mà cứ bị nói chuyện if-else và mấy cái lớp-hàm thư viện gì đâu. Ai lại chẳng biết rằng có nhiều cách dễ và hiệu quả hơn.

    Thây câu trả lời mới, tưởng đâu có ngưới tìm ra giải pháp hay. Tẽn tò, mất công click vào quá.

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •