Chuyển chữ hoa thành chữ thường trong C / C++
Trong bài viết này, codehow sẽ hướng dẫn các bạn cách chuyển chữ hoa thành chữ thường trong C / C++. Đây là một dạng bài tập rất quen thuộc khi bắt đầu học bất kì một ngôn ngữ lập trình nào.
Trước tiên, chúng ta cần tìm hiều về giá trị ACSII. Ở bài trước mình đã có hướng dẫn cách tìm giá trị ASCII trong C / C++, các bạn có thể xem lại nhé.
Mình sẽ nhắc lại cho các bạn về giá trị ASCII, trong bảng ASCII bắt đầu từ 0 đến 127 sẽ là giá trị tương ứng với các ký tự.
Ở đây chúng ta chỉ cần quan tâm đến từ ký tự a - z và A - Z mà thôi. Với các chữ hoa A - Z, giá trị ASCII tương ứng từ 65 - 90. Các chữ in thường sẽ bằng giá trị in hoa cộng thêm 32, vậy là từ 97 - 122.
Ví dụ: Mình có ký tự A = 65, vậy a = 65 + 32 = 97. Tương tự như vậy cho các chữ cái khác.
Vậy làm thế nào để có thể chuyên chữ in hoa thành chữ in thường trong C / C++, các bạn hãy bắt đầu cùng mình ngay bây giờ thôi nhé.
Chuyển chữ hoa thành chữ thường trong C / C++
Trong chương trình này, mình sẽ thực hiện chương trình chuyển chữ hoa thành chữ thường trong C / C++.
Đầu tiên cần khai báo một chuỗi str, ở đây mình gán độ dài là 25. Sau đó yêu cầu người dùng nhập vào một chuỗi.
char str[25]; printf("Nhập vào một chuỗi: "); scanf("%s", &str);
Sử dụng vòng lặp for lặp từ 0 đến độ dài của chuỗi. Nếu ký tự nào nằm trong khoảng từ 65 - 90 (là chữ hoa) thì cộng thêm 32 (thành chữ thường).
for(i=0;i<=strlen(str);i++){ if(str[i]>=65&&str[i]<=90) str[i]=str[i]+32; }
Sau đó in chuỗi ra màn hình.
Dưới đây là hai chương trình hoàn chỉnh mình đã viết bằng ngôn ngữ C và C++, các bạn có thể tham khảo nhé !!!
Chương trình C:
#include <stdio.h> int main(void) { char str[25]; int i; printf("Nhập vào một chuỗi: "); scanf("%s", &str); for(i=0;i<=strlen(str);i++){ if(str[i]>=65&&str[i]<=90) str[i]=str[i]+32; } printf("Chuỗi sau khi được chuyển thành chữ thường là: %s ",str); printf("\n------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); }
Kết quả:
Chương trình C++:
#include <iostream> #include<string.h> using namespace std; int main(){ char str[25]; int i; cout<<"Nhập vào một chuỗi: "; cin>>str; for(i=0;i<=strlen(str);i++){ if(str[i]>=65&&str[i]<=90) str[i]=str[i]+32; } cout<<"Chuỗi sau khi được chuyển thành chữ thường là "<<str; cout<<"\n------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; }
Kết quả:
Chuyển chữ hoa thành chữ thường trong C / C++ sử dụng hàm tolower()
Như các bạn đã thấy thì cách chuyển chữ hoa thành chữ thường trnog C / C++ ở chương trình 1 rất dài dòng và khó hiểu đúng không a.
Biết được điều đó, trong ngôn ngữ C và C++ đã tạo ra một hàm để làm việc này, đó là hàm tolower(). Vậy làm thể nào để sử dụng nó trong việc chuyển chữ hoa thành chữ thường trong C / C++, các bạn hãy xem ví dụ dưới đây.
Chương trình C:
#include <stdio.h> int main(void) { char str[25]; int i; printf("Nhập vào một chuỗi: "); scanf("%s", &str); printf("Chuỗi sau khi được chuyển thành chữ thường là: "); for(i=0;i<=strlen(str);i++){ putchar(tolower(str[i])); } printf("\n------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); }
Kết quả:
Chương trình C++:
#include <iostream> #include <ctype.h> #include <cstring> using namespace std; int main(){ char str[25]; int i; cout<<"Nhập vào một chuỗi: "; cin>>str; cout<<"Chuỗi sau khi được chuyển thành chữ thường là: "; for (int i=0; i<=strlen(str); i++) { putchar(tolower(str[i])); } cout<<"\n------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; }
Kết quả:
Như vậy là chúng ta đã cùng nhau tìm hiểu về cách chuyển chữ hoa thành chữ thường trong C / C++. Các bạn có thể luyện tập với nhiều dạng bài tập khác nhau tại serries bài tập C / C++ của codehow nhé. Cảm ơn các bạn rất nhiều !!!