Hàm printf() xuất chuỗi không chính xác

Làm thế nào để khắc phục lỗi printf() chỉ xuất ra những ký tự trước ký tự khoảng trắng đầu tiên?

char strTen[30];

fflush(stdin);
printf("Nhap vao ten: ");
scanf_s("%s", &strTen, 30);     //Chang han minh nhap vao "Nguyen Duc Anh"

printf("%s", strTen);    //Khi xuat ra man hinh "Nguyen"

Bạn dùng strtok trong string.h

sửa lại thành printf("%s",strtok(strTen," "));

Nếu mình nhớ ko nhầm thì lỗi này do bạn dùng scanf_s nhưng ko hiểu rõ nó, ko liên quan gì đến hàm printf cả. Hàm này nhập chuỗi mà khi gặp dấu cách hoặc dấu enter thì sẽ ngừng nhập, như trong trường hợp của bạn nó chỉ nhận chữ nguyen là đúng.
Bạn hãy dùng hàm fgets để nhập chuỗi, cách dùng bạn tìm trên google.

Mình dùng cin.getline(strHoTen, sizeof(strHoten)); Chương trình chạy tốt rồi. Cảm ơn mấy bạn nha.

1 Like

vầy cho lẹ

#include <stdio.h>
int main(){
    char strTen[30];
    printf("Nhap vao ten: ");
    scanf("%[^\n]",strTen);
    printf("%s",strTen);
}
1 Like

cho nay nen dung gét chu nhi sao lai dng scanf nhi

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