NHẬP TỪ KHÓA BẠN QUAN TÂM VÀO KHUNG BÊN DƯỚI
LIKE ỦNG HỘ GOCCAY.VN NHA CÁC BẠN ^_^
TRUYỆN XEM NHIỀU NHẤT
Đấu Phá Thương Khung
Đấu La Đại Lục
Cực Phẩm Gia Đinh
Tân Tác Long Hổ Môn
Phong Thần Ký III
Tuyệt Thế Vô Song
Thời Đại X Long
Thiên Địa Long Hồn
Chu Tước Ký
Bàn Long
Thôn Phệ Tinh Không
Chín Chín Tám Mốt
Mãng Hoang Ký
Hắc Khuyển
+ Trả Lời Ðề Tài
kết quả từ 1 tới 1 trên 1

Ðề tài: Hàm Xử Lý Trên Chuỗi Ký Tự Trong C

  1. #1
    Tham gia ngày
    Aug 2012
    Bài gởi
    59
    Thanks
    32
    Thanked 45 Times in 20 Posts

    Hàm Xử Lý Trên Chuỗi Ký Tự Trong C

    1. Khái niệm:

    Chuỗi ký tự là một dãy gồm các ký tự hoặc một mảng các ký tự được kết thúc bằng ký tự ” (còn được gọi là ký tự NULL trong bảng mã Ascii).

    Các hằng chuỗi ký tự được đặt trong cặp dấu nháy kép “”.


    2. Khai báo:


    Khai báo theo mảng: char <Biến> [Chiều dài tối đa]

    Ví dụ: Trong chương trình, ta có khai báo:

    PHP Code:
    char Ten[12]; 
    Trong khai báo này, bộ nhớ sẽ cung cấp 12-1 bytes để lưu trữ nội dung của chuỗi ký tự Ten; byte cuối cùng lưu trữ ký tự ‘’ để chấm dứt chuỗi.


    Ghi chú:
    • Chiều dài tối đa không nên khai báo thừa để tránh lãng phí bộ nhớ, nhưng cũng không nên khai báo thiếu.

    Khai báo theo con trỏ: char *<Biến>

    Ví dụ: Trong chương trình, ta có khai báo:

    PHP Code:
    char *Ten
    Trong khai báo này, bộ nhớ sẽ dành 2 byte để lưu trữ địa chỉ của biến con trỏ Ten đang chỉ đến, chưa cung cấp nơi để lưu trữ dữ liệu. Muốn có chỗ để lưu trữ dữ liệu, ta phải gọi đến hàm malloc() hoặc calloc() có trong “alloc.h”, sau đó mới gán dữ liệu cho biến.

    Vừa khai báo vừa gán giá trị

    Ví dụ:
    PHP Code:
    #include<stdio.h> 
    #include<conio.h> 
    int main() {     
    char Chuoi[]="Mau nang hay la mau mat em" ;     
    printf("Vua khai bao vua gan trị : %s",Chuoi) ;     
    system("pause");     
    return 
    0; } 


    Ghi chú
    : Chuỗi được khai báo là một mảng các ký tự nên các thao tác trên mảng có thể áp dụng đối với chuỗi ký tự.


    3. Các thao tác trên chuỗi ký tự:


    Nhập chuỗi từ bàn phím: gets(<Biến chuỗi>)

    Ví dụ:
    PHP Code:
    char Ten[20]; 
    gets(Ten); 
    Có thể sử dụng hàm scanf() để nhập dữ liệu cho biến chuỗi, tuy nhiên lúc này chỉ có thể nhập được một chuỗi không có dấu khoảng trắng.


    Ngoài ra, hàm cgets() (trong conio.h) cũng được sử dụng để nhập chuỗi.


    Xuất chuỗi lên màn hình: puts(<Biểu thức chuỗi>)

    Ví dụ: Nhập vào một chuỗi và hiển thị trên màn hình chuỗi vừa nhập.

    PHP Code:
    #include<conio.h> 
    #include<stdio.h> 
    #include<string.h> 
    int main() {     
    char Ten[12];     
    char queQuan[15];     
    printf("Nhap Ten: ");
    fflush(stdin);gets(Ten);     
    printf("Nhap Que Quan: ");
    fflush(stdin);gets(queQuan);     
    printf("Chuoi vua nhap: ");
    puts(Ten);puts(queQuan);     
    getch();     
    return 
    0; } 
    Ngoài ra, ta có thể sử dụng hàm printf(), puts() (trong conio.h) để hiển thị chuỗi lên màn hình.


    Cộng chuỗi – strcat()

    Cú pháp: char *strcat(char *des, const char *source)


    Ghép chuỗi nguồn vào chuỗi đích.


    Ví dụ: Nhập vào họ lót và tên của một người, sau đó in cả họ và tên của họ lên màn hình.
    PHP Code:
    #include<conio.h> 
    #include<stdio.h> 
    #include<string.h>
     
    int main() {     
    char HoLot[30], Ten[12];     
    printf("Nhap Ho Lot: ");
    gets(HoLot);     
    printf("Nhap Ten: ");
    gets(Ten);     
    strcat(HoLot,Ten); /* Ghep Ten vao HoLot*/     
    printf("Ho ten la: ");
    puts(HoLot);     
    getch();     
    return 
    0; } 
    Xác định độ dài chuỗi - strlen()

    Cú pháp: int strlen(const char* s)


    Ví dụ: Sử dụng hàm strlen xác định độ dài một chuỗi nhập từ bàn phím.

    PHP Code:
    #include<conio.h> 
    #include<stdio.h> 
    #include<string.h> 
    int main(){     
    char Chuoi[255];     
    int Dodai;     
    printf("Nhap chuoi: ");
    gets(Chuoi);     
    Dodai strlen(Chuoi)     
    printf("Chuoi vua nhap: ");
    puts(Chuoi);     
    printf("Co do dai %d",Dodai);     
    getch();     
    return 
    0; } 
    Đổi một ký tự thường thành ký tự hoa - toupper()

    Cú pháp: char toupper(char c)

    Đổi chuỗi chữ thường thành chuỗi chữ hoa – strupr()

    Cú pháp: char* strupr(char *s)


    Ví dụ: Viết chương trình nhập vào một chuỗi ký tự từ bàn phím. Sau đó sử dụng hàm strupr() để chuyển đổi chúng thành chuỗi chữ hoa.

    PHP Code:
    #include<conio.h> 
    #include<stdio.h> 
    #include<string.h> 
    int main() {     
    char Chuoi[255],*s;     
    printf("Nhap chuoi: ");
    gets(Chuoi);     
    s=strupr(Chuoi) ;     
    printf(“Chuoi chu hoa);
    puts(s);     
    getch();     
    return 
    0; } 


    Đổi chuỗi chữ hoa thành chuỗi chữ thường – strlwr()


    Cú pháp: char *strlwr(char *s)


    Sao chép chuỗi – strcpy()

    Cú pháp: char* strcpy(char *Des, const char *Source)


    Ví dụ: Viết chương trình cho phép chép toàn bộ chuỗi nguồn vào chuỗi đích.

    PHP Code:
    #include<conio.h> 
    #include<stdio.h> 
    #include<string.h> 
    int main() {     
    char Chuoi[255],s[255];     
    printf("Nhap chuoi: ");
    gets(Chuoi);     
    strcpy(s,Chuoi);     
    printf(“Chuoi dich);
    puts(s);     
    getch();     
    return 
    0; } 
    Sao chép một phần chuỗi – strncpy()

    Cú pháp: char *strncpy(char *Des, const char *Source, size_t n)


    Trích một phần chuỗi – strchr()

    Cú pháp: char *strchr(const char *str, int c)


    Trích một chuỗi con của một chuỗi ký tự bắt đầu từ một ký tự được chỉ định trong chuỗi cho đến hết chuỗi.

    Ghi chú:
    • Nếu ký tự đã chỉ định không có trong chuỗi, kết quả trả về là NULL.
    • Kết quả trả về của hàm là một con trỏ, con trỏ này chỉ đến ký tự c được tìm thấy đầu tiên trong chuỗi str.
    Tìm kiếm nội dung chuỗi – strstr()

    Cú pháp: char* strstr(const char *s1, const char *s2)


    Tìm kiếm sự xuất hiện đầu tiên của chuỗi s2 trong chuỗi s1. Kết quả trả về của hàm là một con trỏ chỉ đến phần tử đầu tiên của chuỗi s1 có chứa chuỗi s2 hoặc giá trị NULL nếu chuỗi s2 không có trong chuỗi s1.


    Ví dụ: Viết chương trình sử dụng hàm strstr() để lấy ra một phần của chuỗi gốc bắt đầu từ chuỗi “hoc”.


    PHP Code:
    #include<conio.h> 
    #include<stdio.h> 
    #include<string.h> 
    int main() {     
    char Chuoi[255],*s;     
    printf("Nhap chuoi: ");
    gets(Chuoi);     
    s=strstr(Chuoi,"hoc");     
    printf("Chuoi trich ra: ");
    puts(s);     
    getch();     
    return 
    0; } 
    So sánh chuỗi – strcmp()

    Cú pháp: int strcmp(const char *s1, const char *s2)


    Hai chuỗi s1 và s2 được so sánh với nhau, kết quả trả về là một số nguyên (số này có được bằng cách lấy ký tự của s1 trừ ký tự của s2 tại vị trí đầu tiên xảy ra sự khác nhau).
    • Nếu kết quả là số âm, chuỗi s1 nhỏ hơn chuỗi s2.
    • Nếu kết quả là 0, hai chuỗi bằng nhau.
    • Nếu kết quả là số dương, chuỗi s1 lớn hơn chuỗi s2.
    So sánh chuỗi – stricmp()

    Cú pháp: int stricmp(const char*s1, const char *s2)


    So sánh trong n ký tự đầu tiên của 2 chuỗi s1 và s2, không phân biệt giữa chữ thường và chữ hoa. Kết quả trả về tương tự như kết quả trả về của hàm strcmp()


    Khởi tạo chuỗi – memset()

    Cú pháp: memset(char *Des, int c, size_t n)

    đặt n ký tự đầu tiên của chuỗi là ký tự c.


    Đổi từ chuỗi ra số, hàm atoi(), atof(), atol() (trong stdlib.h)
    Cú pháp:
    • int atoi(const char *s): chuyển chuỗi thành số nguyên
    • long atol(const char *s): chuyển chuỗi thành số nguyên dài
    • float atof(const char *s): chuyển chuỗi thành số thực
    Nếu chuyển đổi không thành công, kết quả trả về của các hàm là 0.
    Ngoài ra, thư viện string.h còn hỗ trợ các hàm xử lý chuỗi khác, ta có thể đọc thêm trong phần trợ giúp.

    View more latest threads same category:

    thay đổi nội dung bởi: pepsi; 10-05-2012 lúc 08:40 PM

  2. Circuit advertisement
    Tham gia ngày
    Always
    Bài gởi
    Many
+ Trả Lời Ðề Tài

Quuyền Hạn Của Bạn

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