Khai báo char trong C

Em có biến char xeploai; làm thế nào để khai báo cho xếp loại là 1 trong những giá trị “Giỏi”, “Khá”, “Trung Bình”, “Kém” nhỉ, ai giúp giùm em với ạ.

Bạn nói rõ hơn được không? Mình chưa hiểu ý bạn lắm

2 Likes

vâng tức là biến xeploai có kiểu char và chỉ nhận được 1 trong những giá trị “Giỏi”, “Khá”, “Trung Bình”, “Kém”, cái này thực hiên trong phần khai báo được không hay phải giới hạn trong hàm main a nhỉ.

Nếu bạn muốn nhập chỉ các giá trị Giỏi, Khá, Trung Bình, Kém thì mình thấy chỉ có cách là xử lý bằng if else khi nhập thôi. Chứ giới hạn bằng khai báo thuần thì mình chưa thấy.

Mà biến char mà nhập các “chuỗi” kia vào là coi chừng bị lỗi đó.

3 Likes

vâng, cảm ơn em cũng nghĩ phải xử lí if else hoặc switch, mà trong C nó chỉ có 1 kiểu char thôi nên đành khai báo vậy, khác là chỗ %c với %s, em nghĩ thế.

Hehe, coi 2 clip này nhé
https://www.youtube.com/watch?v=P7W3cNlm4vo
https://www.youtube.com/watch?v=7SPXjK1E4oE

Còn ko đọc bài này cũng được: https://cpp.daynhauhoc.com/6/0-mang-ki-tu/

2 Likes

char foo[] = { ‘L’, ‘e’, ’ ', ‘T’, ‘r’, ‘a’, ‘n’, ’ ', ‘D’, ‘a’, ‘t’, ‘\0’ }; đây là kiểu em muốn nói đến ạ, nhưng mà đưa vào dev C nó lại báo lỗi mới đau chứ :grin: :grin::grin:

Nó báo lỗi như thế nào? Bạn cho mình xem được khong?

2 Likes

đây ạ

1 ký tự chỉ được bỏ trong 1 cặp '' thôi
Trong khi XS, TB là 2 ký tự rồi nên đâu bỏ trong '' được. tới lúc này bạn phải dùng tới Mảng chuỗi nhé.

Nếu bạn chưa học thì mình gợi ý cho là nó như thế này:

char xeploai[][] = {"XS", "G", ... };
3 Likes


vâng, quên nói là em cũng thử luôn cách kia rồi ạ, hic

Chẹp, như thế lày, thêm số 3 vô nhé. Nếu có lỗi nữa thì vô Tools -> Compiler Options -> Mò chỗ nào có fpermissive thì bỏ đi cho nó đỡ báo lỗi :3

char xl[][3] = {"XS", "G", ...};

Và bạn nên học thêm về mảng, và chuỗi để hiểu rõ hơn nhé.

3 Likes

vâng, để em tìm hiểu thêm, cảm ơn a đã giúp đỡ cả buổi tối nhé, chúc a ngày mới vui vẻ. :blush:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?