01/10/2018, 15:01

Nhập vào chuỗi ký tự giới tính, xét xem là nam hay nữ, sau đó xuất ra màn hình giới tính đó

Em có viết một code với nội dung là: “Nhập vào giới tính, xét xem là nam hay nữ, sau đó xuất ra màn hình giới tính đó. (điều kiện là chỉ cho phép nhập nam hoặc nữ, nếu nhập những chữ khác sẽ bắt nhập lại)”
Vì người dùng có thể nhập ‘Nam’ ‘nAm’ ‘nU’ ‘NU’, nên ý tưởng của em là sẽ chuyển tất cả thành ký tự thường là ‘nu’ & ‘nam’ sau đó so sánh nó với điều kiện trong while, nếu không thỏa tức là nhập những chữ khác thì bắt nhập lại.
Nhưng sau khi chạy thì code của em không thể thoát khỏi vòng while kể cả khi em nhập đúng. Mong mọi người chỉ chỗ sai dùm em. Đây là code của em ạ.

    #include <iostream>
    using namespace std;

    int main()
    {
    	char chGioiTinh[4];

    	while ((chGioiTinh != "nu") || (chGioiTinh != "nam")) {
    		cout << "Gioi tinh: ";
    		cin >> chGioiTinh;
    		for (int i = 0; chGioiTinh[i] != ''; i++)
    			if (chGioiTinh[i] >= 'A' && chGioiTinh[i] <= 'Z')
    				chGioiTinh[i] = chGioiTinh[i] + 32;
    	}
    	cout << chGioiTinh << endl;
        return 0;
    }
rogp10 viết 17:16 ngày 01/10/2018

Chuỗi C không có so sánh vậy được, nó thành ra so hai con trỏ rồi.

Tsuki_Tsuki viết 17:06 ngày 01/10/2018

Bạn có thể giải thích rõ hơn cho mình không

Duy Khanh viết 17:13 ngày 01/10/2018

Bạn tham khảo so sánh chuỗi bằng hàm strcmp trong thư viện string.h, hoặc bạn có thể tự viết một cái:

https://cachhoc.net/2018/01/19/sanh-chuoi-trong-c-strcmp/
Tsuki_Tsuki viết 17:06 ngày 01/10/2018

https://cachhoc.net/2018/01/19/sanh-chuoi-trong-c-strcmp/

Cảm ơn bạn. Khi mình dùng các hàm tương tự như strcmp, strcpy, v.v. thì chương trình biên dịch luôn báo lỗi _CRT_SECURE_NO_WARNINGS

Duy Khanh viết 17:09 ngày 01/10/2018

Cụ thể là warning hay lỗi bạn. Và chương trình có chạy được và đúng không.

HK boy viết 17:04 ngày 01/10/2018

Đã code C++ thì dùng luôn std::string đi bạn.

Duy Khanh viết 17:10 ngày 01/10/2018

CRTSECURE_NO_WARNINGS

Bạn có thể tham khảo cách bỏ warning đi, cái đấy là cảnh báo trong Visual Studio khuyến nghị dùng các hàm CRT được mô tả là “more secure” hơn (do thằng nào định nghĩa thì mình không rõ):

https://kave2.wordpress.com/2015/02/02/_crt_secure_no_warnings-in-microsoft-visual-studio/
Tsuki_Tsuki viết 17:12 ngày 01/10/2018

nó báo lỗi và không chạy được nha bạn

Tsuki_Tsuki viết 17:13 ngày 01/10/2018

cảm ơn lời khuyên của bạn

Nguyen Hai viết 17:02 ngày 01/10/2018

Bạn bỏ dk lặp đi sau check lại bằng if rồi break. Dk lặp của b sai rồi

Tsuki_Tsuki viết 17:08 ngày 01/10/2018

Cảm ơn bạn, code của mình đã chạy được rồi

Bài liên quan
0