Bài giảng Tin học căn bản (Phần 3) - Chương 5: Xâu ký tự cung cấp cho người học các kiến thức: Khái niệm xâu ký tự, khai báo và sử dụng xâu, một số hàm làm việc với ký tự và xâu ký tự trong C. Mời các bạn cùng tham khảo nội dung chi tiết.
tới kí tự ch str, ngược lại trả trỏ NULL Tương tự strchr() việc tìm kiếm cuối xâu str char* strstr(char* str1, char* str2); Tìm kiếm vị trí xâu str2 xâu str1 Nếu str2 xâu str1 hàm strstr() trả trỏ trỏ tới kí tự xâu str2 str1, ngược lại trả trỏ NULL 17 5.3.3 Một số hàm xử lý xâu ký tự khác char* strcat(char* xâu_đích, char* xâu_nguồn); char* strncat(char* xâu_đích, char* xâu_nguồn, int n); Tương tự strcat giới hạn với n ký tự xâu_nguồn char* strlwr(char* xâu) Ghép nối xâu_nguồn vào sau xâu_đích Kết trả hàm strcat() xâu ghép nối từ xâu xâu_nguồn xâu_đích Chuyển đổi chữ in hoa xâu sang chữ thường char* strupr(char* xâu) Chuyển đổi chữ thường xâu sang chữ in hoa 18 5.3.3 Một số hàm xử lý xâu ký tự khác void strset(char* s, char c) void strnset(char* s, char c, int n) Khởi đầu giá trị tất ký tự xâu s ký tự c Khởi đầu giá trị cho n ký tự xâu s ký tự c int atoi(char* str) Chuyển xâu kí tự biểu diễn số nguyên thành số nguyên tương ứng Nếu chuyển đổi thành công, hàm atoi() trả giá trị số nguyên chuyển đổi được, ngược lại trả giá trị 19 5.3.4 Con trỏ xâu ký tự Như biết xâu ký tự dãy ký tự đặt hai dấu nháy kép, ví dụ: "Dai Hoc Bach Khoa" Cũng giống mảng, xâu ký tự địa biểu thị địa đầu mảng ký tự chứa xâu (Mảng chứa ký tự xâu công thêm ký tự NULL) Vì vậy, khai báo char *pc; trỏ kiểu char phép gán pc="Dai Hoc Bach Khoa" hợp lệ Sau thực câu lệnh này, trỏ pc có địa đầu xâu "Dai Hoc Bach Khoa" 20 5.3.4 Con trỏ xâu ký tự Giữa trỏ kiểu char mảng kiểu char có khác biệt Xét ví dụ sau: char char pc = ch = ch[20]; *pc; "Dai Hoc Bach Khoa";/*Hợp lệ*/ "Dai Hoc Bach Khoa";/*Không hợp lệ*/ câu lệnh gán hợp lệ pc trỏ kiểu char, câu lệnh gán thứ hai khơng hợp lệ ch khai báo mảng ký tự, ch hằng, khơng thể gán giá trị cho 21 5.3.4 Con trỏ xâu ký tự Có thể thao tác tất ký tự xâu thông qua trỏ #include void main() { int i; char *str; str = "Lap trinh C that thu vi"; for (i = 0; *str != '\0'; i++) str++; printf("so cac ky tu = %d\n",i); } 22 Bài tập Bài 1: Nhập xâu kí tự từ bàn phím gồm từ, ví dụ "Thu Ha Noi" Lập chương trình để bỏ bớt dấu trống từ cho từ cách dấu trống Bài 2: Viết chương trình nhập vào từ bàn phím họ tên người, sau in phần tên hình Ví dụ: "Tran Hung Dao" in "Dao" Bài 3: Nhập vào câu, kết thúc dấu chấm In câu có từ 23 Bài chữa #include #include #include void main(){ char s[30], *p; clrscr(); printf("Nhap vao mot xau ho va ten"); gets(s); /* Dùng hàm strrchr duyệt ngược từ cuối xâu, tìm vị trí ký tự trả trỏ trỏ đến ký tự */ p = strrchr(s,' '); // Tìm ký tự trống từ cuối xâu s p = p + 1; printf("\nPhan ten la: %s\n",p); getch(); } 24 25 Bài #include #include #include int main(int argc, char *argv[]) { char s[50], t[5]=" ", *p, *q; int i,j; printf("Nhap xau: "); fflush(stdin);gets(s); for(i=0;i