Viết chương trình nhập tên, yêu cầu tên trên 8 ký tự

Chương trình nhập tên sao cho nếu tên chưa đủ 8 ký tự thì báo không in đc.Mình thử viết code này nhưng nó tính cả các khoảng trắng (\t) .Bây giờ chỉ muốn nó tính chữ cái thôi không tính dấu cách thì làm thế nào.Với lại ai biết cách sửa code ngắn gọn hơn thì giúp mình nha

#include <iostream>
#include <string>
#include <stdio.h>


using namespace std;

int main()
{
    char c;
    int i = 0;
    char ten[20] = "";
    cout << "Hay nhap ten cua ban:";

    while (c != '\n')
    {  c = getchar();
       ten[i] = c;
       i++;
    }

    if (i >= 9)
        cout << "Xin chao ban:" << ten;
    else
        cout << "Ten cua ban chua du 8 ky tu";


    return 0;
}

thêm 1 if trc khi i++ là xong :stuck_out_tongue:

if(toupper(c) >='A' && toupper(c) <= 'Z')
1 Like

Đơn giản thôi, dùng scanf

#include <stdio.h>
#include <string.h>

int main() {
    char name[100];
    scanf("%[a-zA-Z0-9_]",name); // đọc kí tự a->z , A-Z,0 -> 9,_
    
    printf("%s\n",name);
    if (strlen(name) >= 8)
        puts("Xin chao ban:");
    else
        puts( "Ten cua ban chua du 8 ky tu");
    return 0;
}
4 Likes

theo mình thì bạn đếm số khoảng trắng(k) sau đó mình cho số kí tự tối thiểu là 8+k

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