Ở đây em sẽ cố giải thích dễ hiểu nhất:
- &&: và, ||: hoặc
- Trong lập trình, có thể coi chữ như số, chỉ khác kiểu dữ liệu (1 cái kiểu
char
, 1 cái kiểuint
)
- Nghĩa là chữ, vẫn có thể đổi được thành số, và số cũng có thể đổi được thành chữ.
- Và chúng ta chuyển đổi giữa 2 cái này theo bảng mã ASCII, đây là hình của em nó:
- Theo như cái bảng này, nếu chuyển số 97 sang chữ, nó sẽ thành chữ ‘a’, cũng như nếu đổi từ chữ ‘a’ sang số, nó sẽ là số 97 (theo như bảng ASCII
VD: sau đây là 1 đoạn code để chuyển đổi làm ví dụ:
int main()
{
printf("%c", 97); // Do yêu cầu in ra màn hình là 1 ký tự (%c), thế nhưng ta lại truyền vào cái % đó 1 số nguyên (phải số nguyên mới được nhé), vì vậy nó sẽ chuyển số 97 thành 1 ký tự cho phù hợp với cái %, và theo bảng ASCII, 97 sẽ chuyển thành chữ 'a'
printf("%d", 'a'); // Như ở trên, do mình cần xuất ra 1 số nguyên (%d), nhưng lại truyền vào cái %d ấy 1 ký tự (chữ 'a'). Vì thế, nó sẽ chuyển chữ 'a' thành số, và theo ASCII,
return 0;
}
Cơ bản là thế, giờ là dòng lệnh trên
(ky_tu >= 'a' && ky_tu <= 'z') || (ky_tu >= 'A' && ky_tu <= 'Z') ||
(ky_tu >= 0 && ky_tu <= 9)
Như đã nói ở trên, chữ có thể coi là số và ngược lại
-
Theo bảng ASCII, chữ cái có số lớn hơn thì lớn hơn, ví dụ, chữ
b
chuyển qua số sẽ là98
, còna
chuyển qua sẽ là97
.98 > 97
=>b > a
-
Vậy, khi nhập 1 chữ cái thường theo bảng chữ cái alphabet (a, b, c, …) thì nó sẽ nằm trong đoạn từ
a -> z
, hay nói cách khác, nếu chuyển sang số, nó sẽ trong đoạn từ97 -> 122
. -
Ở đoạn code này Sẽ kiểm tra xem ký tự nhập vào có nằm trong đoạn từ
a -> z
không. Và cũng như thế với 2 cụm kia, là kiểm tra xem có nằm trong đoạn'A' -> 'Z'
không (chữ hoa theo bảng mã cósố
khác chữ thường nha, đừng lẫn lộn
ky_tu >= 'a' && ky_tu <= 'z'
Nếu vẫn chưa hiểu, anh có thể add Skype em cho dễ nói chuyện:
Name: Long Mr
Mail: [email protected]