So Sánh Chuỗi Nhập Vào Với Chuỗi Có Sẵn - Dạy Nhau Học Trang chủ » Hàm So Sánh 2 Chuỗi Trong C » So Sánh Chuỗi Nhập Vào Với Chuỗi Có Sẵn - Dạy Nhau Học Có thể bạn quan tâm Hàm So Sánh 2 Cột Trong Excel Hàm So Sánh Chênh Lệch Trong Excel Hàm So Sánh Chuỗi Trong Python Hàm So Sánh Dữ Liệu 2 File Excel Hàm So Sánh Giá Trị Text Trong Excel So sánh chuỗi nhập vào với chuỗi có sẵn programming c c++ MuMot (Nguyễn Minh Trí) January 19, 2016, 3:57am #1 #include <conio.h> #include <stdio.h> int main(){ char mangkitu[]=""; printf("nhap chuoi: "); gets(mangkitu); if(mangkitu=="dnh") printf("YES"); else printf("NO"); getch(); return 0; } khi nhập vào dnh thì mangkitu[] sẽ có 4 phần tử (cộng thêm kí tự kết thúc chuỗi ‘\0’). vậy mình phải so sánh như thế để điều kiện if đúng và in ra YES JuniorK (Khôi Trần) January 19, 2016, 4:04am #2 Thứ nhất tự giác gg, hay đơn giản trong bất kì quyển giáo trình nào cũng nhắc đến hàm strcmp Thứ hai có thể tự viết hàm này bằng cách so sánh lấn lượt từng kí tự của 2 xâu 2 Likes vietha0996 (Ha) January 19, 2016, 4:46am #3 So sánh 2 chuỗi thì dùng hàm strcmp còn so sánh các kí tự trong 2 chuỗi thì dùng hàm strncmp nhé. http://www.cplusplus.com/reference/cstring/strcmp/ http://www.cplusplus.com/reference/cstring/strncmp/ 2 Likes MuMot (Nguyễn Minh Trí) January 19, 2016, 5:42am #4 JuniorK: Thứ nhất tự giác gg, hay đơn giản trong bất kì quyển giáo trình nào cũng nhắc đến hàm strcmpThứ hai có thể tự viết hàm này bằng cách so sánh lấn lượt từng kí tự của 2 xâu vietha1996: So sánh 2 chuỗi thì dùng hàm strcmp còn so sánh các kí tự trong 2 chuỗi thì dùng hàm strncmp nhé. char mangkitu[]=""; printf("nhap chuoi: "); gets(mangkitu); if(strcmp(mangkitu,"dnh")==0) printf("YES"); else printf("NO"); nếu dùng hàm xử lý chuỗi thì dễ rồi, ý mình hỏi là có cách nào để so sánh trực tiếp 2 chuỗi với nhau bằng phép toán == được k? chuỗi nhập vào sẽ có thêm kí tự ‘\0’ nhưng mình thêm kí tự ‘\0’ vào chuỗi có sẵn mà sao nó vẫn trả về kết quả sai #include <conio.h> #include <stdio.h> int main(){ char mangkitu[]=""; printf("nhap chuoi: "); gets(mangkitu); if(mangkitu==("dnh"+'\0')) printf("YES"); else printf("NO"); getch(); return 0; } vietha0996 (Ha) January 19, 2016, 5:47am #5 Phép so sánh == không dùng để so sánh nội dung của 2 chuỗi được. Câu hỏi và giải đáp của bạn đều có ở đây nhé. http://diendan.congdongcviet.com/threads/t50872::2-chuoi-giong-nhau-nhung-lai-ko-bang-nhau-khi-so-sanh.cpp 2 Likes MuMot (Nguyễn Minh Trí) January 19, 2016, 5:54am #6 oh! mình hiểu rồi, cám ơn bạn nhiều! Pham_Van_Hai (Pham Van Hai) January 19, 2016, 5:54am #7 MuMot: char mangkitu[]=""; Góp ý với bạn là đoạn trên không hợp lệ về mặt logic. Theo mình hiểu bạn định khai báo cách đó để áp ụng cho nhập xâu tùy ý. Nhưng về mặt logic là sai vì sau câu lệnh đó mangkitu chỉ có kích thước là 1 (chứa ký tự \0). Bạn phải khai báo kích thước của mangkitu hoặc dùng cấp phát động. 1 Like MuMot (Nguyễn Minh Trí) January 19, 2016, 6:22am #8 mình xem video của anh @ltd thì chỉ thấy cách khai báo kích thước mangkitu hoặc dùng cấp phát động theo như bạn nói, mà sao khi khai báo char mangkitu[]= ""; thì chương trình vẫn chạy đúng, mình cũng thắc mắc lâu lắm rồi mà chưa giải đáp được, sẵn tiện bạn biết thì bỏ chút thời gian giải thích giúp mình được k? mình cảm ơn nhiều Pham_Van_Hai (Pham Van Hai) January 19, 2016, 6:59am #9 Bộ nhớ của máy tính được tổ chức theo các ô nhớ liên tiếp nhau. Khi bạn khai báo một mảng có kích thước n thì nó sẽ cấp phát cho bạn n * (kích thước của từng kiểu dữ liệu, ví dụ: char - kích thước 1 byte, short int - kích thước 2 byte). Nhưng bạn có vẫn dùng được array[n+1] nếu như vùng nhớ đó free, không bị chương trình nào dùng. C không quan tầm và không check kích thước của mảng. Mà lập trình viên phải làm điều đó. Trong trường hợp của bạn mảng mangkitu chỉ có 1 byte nhưng tại sao bạn vẫn dùng được là vì có thể vùng nhớ lân cận mangkyti vẫn đang free, không có chương trình nào dùng cả, nhưng nếu có chương nào đang dùng thì chương trình của bạn sẽ bị lỗi ngay (chỉ xảy ra khi chạy chương trình) và đây gọi là lỗi run-time. 1 Like DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Hàm So Sánh 2 Chuỗi Trong C So Sánh Chuỗi Trong C (strcmp, Strncmp) Hàm Strcmp() - So Sánh Chuỗi Trong C - VietTuts Bài Tập C - So Sánh Hai Chuỗi Trong C - VietTuts So Sánh Chuỗi Trong C - Strcmp - Cách Học Hàm So Sánh 2 Chuỗi Trong C - Hàng Hiệu So Sánh Hai Chuỗi Trong C So Sánh 2 Chuỗi String Trong C++ - Thả Rông Hướng Dẫn Các Cách So Sánh Chuỗi Trong C Strcmp - Box-edu LTC 73. Lập Trình So Sánh Hai Chuỗi Trong C, Hàm Strcmp Trong C Lập Trình C++ - So Sánh Hai Chuỗi So Sánh Chuỗi Trong C++ - Programming - Dạy Nhau Học So Sánh 2 Chuỗi String Trong C++ - Xây Nhà Bài 18: Các Hàm Xử Lý Chuỗi Trong Lập Trình C - Khuê Nguyễn