Lý Thuyết
Xâu bản chất là 1 mảng các ký tự được lưu trữ trên các ô nhớ liên tiếp và kết thúc bằng ký tự '\0', bạn có thể khởi tạo giá trị cho xâu giống như cho mảng:
char str[] = "abcd";
char str[50] = "abcd";
char str[] = {'a', 'b', 'c', 'd', '\0'};
char str[] = {'a', 'b', 'c', 'd', '\0'};
char str[5] = {'a', 'b', 'c', 'd', '\0'};
Để nhập dữ liệu và hiển thị một xâu ra màn hình bạn dùng định dạng %s.
Để nhập được dữ liệu có khoảng trắng cho xâu str bạn cần dùng câu lệnh gets(str);
Xâu bản chất là 1 mảng các ký tự nên bạn có thể lấy ra phần tử thứ k trong xâu s bằng s[k - 1];
Bạn có thể sử dụng hàm strlen() (strlen là viết tắt của string length) trong thư viện string.h để lấy ra độ dài của 1 xâu (Khi làm thực tế bạn nên dùng hàm strlen() vì nó ngắn hơn).
Để kiểm tra xem 2 xâu có giống nhau hay không bạn có thể dùng hàm strcmp() trong thư viện string.h. Hàm này sẽ trả về 0 nếu 2 xâu giống nhau, ngược lại hàm này sẽ trả về một số khác 0 nếu 2 xâu khác nhau.
Giá trị của các ký tự in thường luôn bằng giá trị của các ký tự in hoa cộng với 32. Từ đó bạn có thể chuyển 1 ký tự từ in thường sang in hoa bằng cách trừ đi 32.
Bạn hãy thử chạy đoạn code dưới đây để hiêu rõ hơn nhé:
#include < stdio.h >
int main() {
printf("a = %d\n", 'a');
printf("b = %d\n", 'b');
printf("c = %d\n", 'c');
printf("d = %d\n\n", 'd');
printf("A = %d\n", 'A');
printf("B = %d\n", 'B');
printf("C = %d\n", 'C');
printf("D = %d\n", 'D');
return 0;
}
Đoạn code dưới đây tạo ra xâu str lưu trữ được 99 ký tự (không phải là 100 do ký tự cuối cùng của một xâu luôn là '\0'), nhập dữ liệu cho xâu str và hiển thị xâu này ra màn hình.
#include < stdio.h >
int main() {
// Khai báo xâu str, xâu str lưu trữ được 99 phần tử
char str[100];
// Nhập dữ liệu vào xâu str
scanf("%s", str);
// Hiển thị xâu str ra màn hình
printf("%s", str);
return 0;
}
Lưu ý:
+ Khi nhập dữ liệu cho xâu thì không sử dụng toán tử & trong hàm scanf().
+ Khi chạy chương trình ở trên máy, bạn không nhập tên và địa chỉ có khoảng trắng vì hàm scanf() không đọc được khoảng trắng.
+ Bạn không thể sử dụng toán tử == để kiểm tra 2 xâu có giống nhau hay không vì nếu áp dụng toán tử này lên 2 xâu thì đó là phép so sánh địa chỉ của phần tử đầu tiên của 2 xâu.1>