Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: kiểm tra tính đúng đắn của chuỗi tiếng Việt như thế nào?

  1. #1
    Ngày gia nhập
    11 2010
    Bài viết
    49

    Mặc định kiểm tra tính đúng đắn của chuỗi tiếng Việt như thế nào?

    Chào mọi người. Mình là mem mới của C#.
    Lúc trước chỉ học C thôi. nhưng thầy dạy đang làm cái soft nên đưa mình bài tập làm thêm.
    Ông giao bảo mình làm bên C#. nhưng mình chưa biết gì nên mom men lên học C#.
    /* Đừng ném gạch nhé */
    Vấn đề của mình gặp phải như thế này các bạn giúp mình với.
    input 1 file có chứa chuổi 1 văn bản tiếng viết
    output: 1 or 0
    1- nếu chuổi hợp lệ và 0 là ngược lại
    Chuổi đúng như sau
    abc[vd] à_ô_á[có_dấu]
    -- là chuổi chuẩn
    -- từ phải chứa ' ] ' ở cuối từ và k dc bắt đầu ' [ '
    -- giữa 2 dấu [ ] bắt buộc có kí tự bất kì.
    //------------------------------------------------//
    Mình đã code và chạy dc với chuỗi k dấu. còn có dấu thì bị lỗi chạy k có dc.
    Bạn nào giúp mình với.
    Visual C# Code:
    1. using System;
    2. using System.IO;
    3. using System.Linq;
    4. using System.Text;
    5.  
    6. namespace vnttqb
    7. {
    8.     class kiemtradulieu
    9.     {
    10.         static string filein="e:\\file.txt";
    11.         static string fileout = "e:\\file_out.txt";
    12.         static int sub(string s, int l, int r)
    13.         {
    14.             if (s[r] != ']' || (s[r]=='\0' && s[r]!=']')) return (0);
    15.             if (s[l] == ' ' || s[l]=='[') return(0);
    16.             for (int i = l+1; i < (r - 1); i++)   // thu[abc]
    17.                 if (s[i] == '[') return (1);
    18.             return (0);
    19.         }
    20.        static int process(string s)
    21.         {
    22.             int n = s.Length;
    23.            if (s[0] == ' ') return (0);
    24.            if (s[n - 1] == ' ') return 0;
    25.             for (int i = 0; i < n; i++)
    26.                 if (s[i] == ' ' && s[i + 1] == ' ') return (0);
    27.             int tg=0;
    28.             for ( int i=1; i<n;i++)
    29.                 if (s[i] == ' ') { if (sub(s,tg, i-1) == 0) return (0); tg = i + 1; }
    30.            if (sub(s,tg,n-1) == 0) return (0);
    31.            return (1);
    32.         }
    33.         static void Main(string[] args)
    34.         {
    35.          
    36.             StreamReader fi;// = new StreamReader(filein);
    37.             StreamWriter fo;// = new StreamWriter(fileout);
    38.             fi = File.OpenText(filein);
    39.             fo = File.CreateText(fileout);
    40.             fo.WriteLine("BEGIN PROCESS");
    41.             while (true)
    42.             {
    43.                 string s = fi.ReadLine();
    44.                 if (s == null) break;
    45.                 else
    46.                     if (process(s) == 0) fo.WriteLine(s);
    47.                
    48.             }
    49.             fo.WriteLine("END PROCESS");
    50.             fi.Close();
    51.             fo.Close();
    52.            
    53.            
    54.         }
    55.        
    56.     }
    57. }

  2. #2
    Ngày gia nhập
    07 2009
    Nơi ở
    C:\Windows
    Bài viết
    103

    Đối với việc kiểm tra một chuỗi có theo đúng định dạng cho trước như thế này, mình nghĩ tốt nhất là nên dùng biểu thức chính qui ( Regular Expression - Regex ).
    http://msdn.microsoft.com/en-us/libr...ons.regex.aspx
    Bạn thử xem có phù hợp với mục đích của bạn không .

    chúc thành công
    Đọc đề
    Xé đề
    Chửi thề
    Ra về

  3. #3
    Ngày gia nhập
    11 2010
    Bài viết
    49

    Bạn nào có thể hướng dẫn hoặc chỉ tài liệu giúp mình giải quyết vấn đề tiếng việt này được không.
    Mình đang cần làm những cái khác xữ lí về tiếng việt nữa

Các đề tài tương tự

  1. Xóa dấu trong chuỗi tiếng Việt như thế nào?
    Gửi bởi dien trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 126
    Bài viết cuối: 27-12-2016, 04:19 PM
  2. Lập trình C Lấy chuỗi gởi lên từ thiết bị giao tiếp với Vi điều khiển trong C, chạy không đúng
    Gửi bởi tienchuan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 16-03-2012, 11:26 AM
  3. Kiểm tra chuỗi đối xứng. Sai khi nhập chuỗi 3 ký tự, còn lại đúng. Ai xem giúp mình với
    Gửi bởi Shock0z trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 10
    Bài viết cuối: 12-11-2011, 09:28 PM
  4. ADO.NET Xác minh chuỗi ký tự nhập vào chương trình đến khi đúng thì viết thế nào??
    Gửi bởi vudat0987 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 27-08-2011, 01:49 PM
  5. Code bài tập Niuton tiến trên lưới đều ra kết quả không đúng, sửa như thế nào?
    Gửi bởi MrChicKen_NAD trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 04-05-2009, 11:56 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn