Chủ Nhật, 13 Tháng Mười 2024
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.

DANH SÁCH BÀI VIẾT
Tìm max min của 3 số a b c nhập từ bàn phím lập trình C/C++
Tìm kiếm phần tử trong mảng 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++
Làm tròn số thập phân, hiện 2 chữ số thập phân sau dấu phẩy C và C++
Viết chương trình tính trung bình cộng các số âm trong mảng lập trình C++

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

1 BÌNH LUẬN

Đăng ký nhận thông báo
Thông báo email khi
guest
1 Bình luận
Mới nhất
Cũ nhất Được bình chọn nhiều nhất
Không thể gửi email
Phản hồi nội tuyến
huy
huy
9 tháng trước

sao mình chạy luôn có kí tự rác + tên vậy

NÊN ĐỌC THÊM

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

Dịch vụ code thuê

TUICOCACH.COM NHẬN ĐẶT TEXTLINK, BANNER, GP
1
0
Giáo sư! có thể ném gạch bên dưới nhé!x