Tôi cần kiểm tra xem chuỗi C có phải là số nguyên hợp lệ không.Xác định xem chuỗi C là một int hợp lệ trong C
tôi đã cố gắng cả
int num=atoi(str);
và
int res=sscanf(str, "%d", &num);
Nhưng gửi chuỗi "8 -9 10"
trong cả hai dòng trở lại chỉ đơn giản là 8, mà không cho thấy sự vô hiệu của chuỗi này.
Ai đó có thể đề xuất giải pháp thay thế không?
'atoi' không kiểm tra lỗi; hành vi của nó nếu 'str' không chứa một biểu diễn của một giá trị' int' là không xác định. (Các hiện thực điển hình trả về '0'.)' Sscanf' là tốt hơn, nhưng hành vi của nó là không xác định nếu giá trị trong chuỗi không thể biểu diễn như một 'int'. Ngoài ra, tiêu đề của bạn nói rằng bạn muốn kiểm tra một int hợp lệ, nhưng phần thân của câu hỏi của bạn nói "số nguyên hợp lệ"; chúng không giống nhau. 'int' là một trong nhiều loại * số nguyên *. –