Thứ Năm, 11 Tháng Tám 2022
Trang chủLập trìnhLập trình C/C++Bài toán tách tên người nhập môn lập trình C/C++

Bài toán tách tên người nhập môn lập trình C/C++

Trong bài viết này chúng ta sẽ cùng làm bài toán tách tên người từ chuỗi nhập vào.

Tách tên người trong lập trình C

Ví dụ nhập tên là Nguyen Van Suu, vậy làm sao để tách riêng được chữ Suu từ chuỗi ban đầu.

Ví dụ chuỗi nhập vào là biến Name.

Cách 1: Ta khai báo thêm một biến gọi là firstName gắn ban đầu bằng rỗng, ta duyệt chuỗi Name từ cuối về đầu chuỗi và đồng thời gắn kí tự đó vào biến firstName, cho đến khi gặp một dấu cách thì ta dừng vòng lặp lại và đảo ngược chuỗi firstName ta lấy được tên chính xác.

Code minh họa

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

int main()
{
	char Name[100]; //Khai báo biến name gồm tối đa 100 phần tử
	
	printf("Nhap ten: ");
	gets(Name); //Nhập họ tên từ bàn phím
	
	char firstName[100]; //Khai báo biến để lưu tên tách ra từ biến name
	
	int len = strlen(Name); //Lấy độ dài chuỗi Name
	
//Duyetehj vòng lặp ngược từ cuối về đầu chuỗi
	int i;
	for(i = len-1; i >= 0; i--){
		if(Name[i] == ' ') break; //Kiểm tra nếu gặp ký tự khoảng trắng ta sẽ dừng vòng lặp
		firstName[len-i-1] = Name[i]; //len-i-1 là lấy đối xứng của i, lúc này nó sẽ chạy từ 0, 1, 2, 3....
	}
	
	strrev(firstName); //Hàm đảo ngược chuỗi firstName
	
	printf("Tach ten: ");
	puts(firstName); //In tên người tách được
}

Kết quả khi chạy chương trình

Bài toán tách tên người nhập môn lập trình

Cách 2: Cũng tương tự như cách 1, nhưng lúc này chỉ khi ta gặp dấu cách thì ta sẽ dùng hàm strcpy để coppy ký tự từ vị trí của dấu cách đó đến cuỗi chuỗi Name sang chuỗi firstName.

Code minh họa

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

int main ()
{
//Đoạn này như chương trình trên kg có gì thay đổi
    char  Name[100];
    
    printf("nhap vao ho ten: ");
    gets(Name);
   
    char firstName[100];
       
    int len=strlen(Name);
    int i=len-1;
//Duyệt ngược vòng lặp tìm vị trí dấu cách trước tên người
    while ((Name[i])!=' ')
    {
        i--;
    }
    //Vì lúc này i là vt của dấu cách nên ta sẽ coppy ký tự thứ i+1 tới cuối chuỗi của Name sang firstName
    strcpy(firstName, Name + (i+1));
    
   printf("Tach ten: ");
   puts(firstName); //Hiển thị tên
    
}

Về cơ bản thì bài toán này chỉ có như vậy, chúc bạn học thật tốt!

[XEM THÊM NHIỀU BÀI VIẾT LẬP TRÌNH C/C++ TẠI ĐÂY]

0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x