cuốn sách gpt4 ai đã làm

c++ - 在编译时定义字符串/字 rune 字

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 14:53:09 27 4
mua khóa gpt4 Nike

Làm cách nào để xác định xem tham số được truyền trong hàm là một chuỗi hay một ký tự (không chắc cách gọi chính xác) theo nghĩa đen?

Chức năng của tôi (không chính xác):

kiểm tra khoảng trống(const char* str)
{
// một số mã ở đây
}

Tôi muốn gọi nó:

int main()
{
check("Xin chào"); // Gọi đúng

std::string xin chào = "Xin chào";
check(hello.c_str()); // Chắc là lỗi biên dịch ở đây
}

câu trả lời hay nhất

Đối với cả hai giải pháp, tôi sẽ thêm kiểm tra Chức năng được đổi tên thành check_impl và bọc nó lại.

Điều này không thể được thực hiện chỉ với trình biên dịch, nhưng chúng ta có thể tiến gần hơn:

mẫu 
void check(char const (&str)[N]) {
trả về check_impl(str);
}

Điều này chỉ chấp nhận const char Tham chiếu mảng, không phổ biến. Nhưng bạn vẫn có thể chuyển các mảng được đặt tên thay vì chuỗi ký tự.

Nhập bộ tiền xử lý:

#define kiểm tra(str) check_impl("" str)

Macro rất đơn giản này chỉ thêm một chữ trống vào đối số của bạn. Nếu đối số là một chuỗi ký tự khác, trình biên dịch sẽ hợp nhất chúng, nếu không sẽ xảy ra lỗi cú pháp.

Về c++ - xác định các từ chuỗi/rune tại thời điểm biên dịch, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/40633675/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress