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

Đề tài: Làm việc với kí tự và chuỗi trong lập trình C trên Linux [Linux Programming]

  1. #1
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Talking Làm việc với kí tự và chuỗi trong lập trình C trên Linux [Linux Programming]

    Bài này nói lại các nhận dạng các kí tự trong C.

    Tổng quan không hề khác gì so với trên môi trường Windows
    Pete xin tổng kết lại với các bài dưới đây !

    Hãy chú ý và theo dõi nếu bạn cũng lập trình trên nền Linux.
    Pete ở đây sử dụng Fedora Core 7 ( Kernel 2.6.22 )
    Nếu các bạn xài dòng Fedora Core thì không có ảnh hường gì nhiều ^^!
    Với dòng khác hãy kiểm tra kernel vì cái này là quan trọng nhất ảnh hưởng API ta sử dụng.
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 02-10-2007 lúc 09:27 PM.
    None!

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Talking Nhận dạng kí tự trong lập trình C trên Linux

    Bài 1 : Nhận dạng các kí tự trong C < Classification of Characters >

    Thư viện : #include <ctype.h>

    Các hàm kiểm tra :

    1. int islower (int c)
    2. int isupper (int c)
    3. int isalpha (int c)
    4. int isdigit (int c)
    5. int isalnum (int c)
    6. int isxdigit (int c)
    7. int ispunct (int c)
    8. int isspace (int c)
    9. int isblank (int c)
    10. int isgraph (int c)
    11. int isprint (int c)
    12. int iscntrl (int c)
    13. int isascii (int c)
    // Chú ý hàm này trả về kí tự trong bảng chuẩn ASCII 7-bit ban đầu.

    Đây là một ví dụ :

    C Code:
    1. #include <stdio.h>
    2. #include <ctype.h>
    3.  
    4. int main(void)
    5. {
    6.     char ch = '\n';
    7.    
    8.     printf("\n");
    9.     if ( islower(ch) )
    10.         printf(" A lower character ! \n ");
    11.     else if ( isupper(ch) )
    12.         printf(" A upper character ! \n ");
    13.     else if ( isalpha(ch) )
    14.         printf(" A alpha character ! \n ");
    15.     else if ( isdigit(ch) )
    16.         printf(" A digit character ! \n ");
    17.     else if ( ispunct(ch) )
    18.         printf(" A punctuation character ! \n ");
    19.     else if ( isspace(ch) )
    20.         printf(" A space character ! \n ");
    21.     else if ( isblank(ch) )
    22.         printf(" A blank character ! \n ");
    23.     else if ( isgraph(ch) )
    24.         printf(" A graphic character ! \n ");
    25.     else if ( isprint(ch) )
    26.         printf(" A printing character ! \n ");
    27.     else if ( iscntrl(ch) )
    28.         printf(" A control character ! \n ");
    29.     else if ( isascii(ch) )
    30.         printf(" A US 7-bit ASCII character ! \n ");
    31.     else
    32.         printf(" A unknown character ! \n");
    33.     return 0;  
    34. }
    ^^!
    Attached Thumbnails Attached Thumbnails char-linx.jpg  
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 02-10-2007 lúc 09:58 PM.
    None!

  3. #3
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Talking Chuyển đổi case của kí tự trong lập trình C trên Linux


    Bài 2 : chuyển đổi case của kí tự < Character Case Conversion >

    Thư viện sử dụng : #include <ctype.h>

    Các hàm sử dụng :

    1. int tolower (int c)
    2. int toupper (int c)
    3. int toascii (int c)
    4. int _tolower (int c)
    5. int _toupper (int c)


    // Chú ý : hàm số 4 và 5 sử dụng phù hợp với SVID <System V Interface Description>

    Đây là code mẫu minh họa :

    C Code:
    1. #include <stdio.h>
    2. #include <ctype.h>
    3.  
    4.  
    5. int main(void)
    6. {
    7.     char ch = 'A';
    8.    
    9.     printf("\n");
    10.    
    11.     ch = tolower(ch);
    12.     printf("After 1st-case-conversion : ");
    13.     putchar(ch);
    14.     printf("\n");
    15.     ch = toupper(ch);
    16.     printf("After 2nd-case-conversion : ");
    17.     putchar(ch);
    18.     printf("\n\n");
    19.  
    20.     return 0;  
    21. }

    Attached Thumbnails Attached Thumbnails caseconversion.jpg  
    None!

  4. #4
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Talking Phân biệt nhóm kí tự cho các kí tự có độ rộng trong lập trình C trên Linux

    Bài 3 : Phân biệt nhóm kí tự cho các kí tự có độ rộng < Character Class Determination for Wide-Character >

    Thư viện sử dụng : #include <wctype.h>

    Data Type :
    wctype_t : giữ giá trị của một nhóm char nào đó

    Các hàm sử dụng để phân biệt :

    1. wctype_t wctype (const char *property)
    ---Các property có thể là :
    "alpha" - "alnum" - "cntrl" - "digit" - "graph" - "lower" - "print" - "punct" - "space" - "upper" - "xdigit"

    Nếu mà kí tự không thuộc nhóm nào ở trên thì giá trị trả về là : 0 (LC_TYPE)

    2. int iswctype (wint_t wc, wctype_t desc)
    Kiểm tra kiểu dữ liệu

    ví dụ :
    PHP Code:
            iswctype(wc,wctype("alpha")); 

    3. int iswalnum (wint_t wc)
    4. int iswalpha (wint_t wc)
    5. int iswcntrl (wint_t wc)
    6. int iswdigit (wint_t wc)
    7. int iswgraph (wint_t wc)
    8. int iswlower (wint_t wc)
    9. int iswprint (wint_t wc)
    10. int iswpunct (wint_t wc)
    11. int iswspace (wint_t wc)
    12. int iswupper (wint_t wc)
    13. int iswxdigit (wint_t wc)
    14. int iswblank (wint_t wc)


    Code mẫu minh họa cách sử dụng :

    C Code:
    1. #include <stdio.h>
    2. #include <ctype.h>
    3.  
    4. /* wctype.h : library for the use of wctype_t, wctype(), iswctype() */
    5. #include <wctype.h>
    6.  
    7. int main(void)
    8. {
    9.     wint_t wc = 'A';
    10.     wctype_t alpha_t = wctype("alpha");
    11.     if ( iswctype(wc,alpha_t) )
    12.         printf(" A Alphabetical Wide-Character ! \n ");
    13.     else
    14.         printf(" Not A Alphabetical Wide-Character ! \n ");    
    15.  
    16.     return 0;  
    17. }

    ^^!
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 02-10-2007 lúc 11:34 PM.
    None!

  5. #5
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Talking Case Conversion cho các kí tự có độ rộng trong lập trình C trên Linux


    Bài 4 : Case Conversion cho các kí tự có độ rộng < Wide-character Case Conversion >

    Thư viện sử dụng :#include <wctype.h>

    Data type : wctrans_t

    Các hàm sử dụng :

    1. wctrans_t wctrans (const char *property)
    --Giá trị của property
    "toupper" - "tolower"

    2. wint_t towctrans (wint_t wc, wctrans_t desc)
    3. wint_t towlower (wint_t wc)
    4. wint_t towupper (wint_t wc)


    Code minh họa

    Visual C# Code:
    1. #include <stdio.h>
    2. #include <ctype.h>
    3.  
    4. /* wctype.h : library for the use of wctrans_t, wctrans(), towctrans(), tơupper()  */
    5. #include <wctype.h>
    6.  
    7. int main(void)
    8. {
    9.     wint_t wc = 'A';
    10.     wctrans_t lower = wctrans("tolower");
    11.     wctrans_t upper = wctrans("upper");
    12.  
    13.     wc = towctrans(wc,lower);
    14.     printf("\n After 1st conversion : ");putchar(wc);
    15.     wc = towupper(wc);
    16.     printf("\n After 2nd conversion : ");putchar(wc);
    17.        
    18.     printf("\n");
    19.     return 0;  
    20. }

    ^^
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 02-10-2007 lúc 11:35 PM.
    None!

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

  1. Linux Programming | Cắt chuỗi thành nhiều chuỗi con
    Gửi bởi Kevin Hoang trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 6
    Bài viết cuối: 07-04-2013, 11:35 AM
  2. Muốn học về Linux để phát triển theo hướng mã nguồn mở trên Linux thì phải làm những gì?
    Gửi bởi vncoder trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 7
    Bài viết cuối: 06-01-2012, 07:58 AM
  3. Linux C++ Programming HOWTO
    Gửi bởi Kevin Hoang trong diễn đàn Công cụ, Tài liệu lập trình trên Linux
    Trả lời: 1
    Bài viết cuối: 04-08-2011, 03:37 PM
  4. Linux programming | Chương trình C đầu tiên của bạn trên Linux
    Gửi bởi Kevin Hoang trong diễn đàn Thủ thuật, Tutorials và Mã nguồn
    Trả lời: 12
    Bài viết cuối: 22-11-2010, 03:48 PM
  5. Lập trình C trong linux. Cách biên dịch chương trình C trên Linux như thế nào?
    Gửi bởi thangbn trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 5
    Bài viết cuối: 30-05-2009, 11:38 AM

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