30/09/2018, 18:08
Switch case với chuỗi kí tự trong C
Các Cao nhân cho em hỏi làm sao để dùng switch case với chuỗi kí tự trong C được không ạ? Em chỉ mới biết switch với số và với 1 kí tự thôi ạ. search trên Stackoverflow có vài cái mà chả hiểu tí gì. Mong các anh chỉ dạy.
Bài liên quan
Hình như là không có??
switch - case chỉ dùng cho kiểu số nguyên và kiểu kí tự thôi bạn( thật ra là chỉ dùng cho kiểu số nguyên vì kiểu kí tự cũng là 1 kiểu số nguyên).
Theo ngu ý của em thì xài switch lồng được không anh :v
switch lồng thì code dài cả cây số bạn à
Ngu kiến mà anh =)) nhưng ít ra là nó vẫn làm được với trường hợp của thớt =))
http://stackoverflow.com/questions/4014827/best-way-to-switch-on-a-string-in-c ai giải thích hộ mình những cái này được không? rắc rối quá
Ý của người ta là dùng nhiều lệnh if else thay vì dùng switch case đó
có mấy cái khác dừn hàm riêng mà bạn
Hàm đó là so sánh 2 chuỗi
return 0 chứng tỏ 2 string giống nhau.
http://www.cplusplus.com/reference/cstring/strcmp/
Dùng if, else và hàm so sánh chuỗi là cách dễ nhất, vì switch case hay if else gì khi biên dịch thành mã máy thì cũng ra một đống asm là cmp, jmp… mà thôi.
Thời bây giờ đã có bảng băm (hash table) rồi, có thể áp dụng kiểu này(nếu bạn lên C++):
Con trỏ hàm: http://diendan.congdongcviet.com/threads/t25204::con-tro-ham-trong-c-cpp-function-pointer.cpp
Bảng băm: http://www.cplusplus.com/reference/unordered_map/unordered_map/