Cắt chuỗi họ tên thành chuỗi họ lót và chuỗi tên

Viết hàm cắt chuỗi họ tên thành chuỗi họ lót và chuỗi tên.
Ví dụ: chuỗi họ tên là:”Nguyễn Văn A” cắt ra 2 chuỗi là chuỗi họ lót:”Nguyễn Văn”,chuỗi tên là:”A”

theo mình thì cho i chạy từ cuối tìm khoảng trắng đầu tiên rồi lưu lại chỉ số. rồi dùng substr tách ra.

họ = s.substr(0,s.find_last_of(' '));
tên = s.substr(s.find_last_of(' ') + 1);

Mình làm thế này

ô, có hàm find_last_of này nữa á. @@.
lần đầu nhìn thấy. :frowning:

1 Like

C++ có nhiều hàm xử lý chuỗi hay lắm đấy. Đọc thêm std đi :smile:

2 Likes

nhưng mình sử dụng 2 hàm trên ko ra đc kết quả bạn

Bạn xem lại chứ mình vẫn chạy đúng nhé.nhớ thêm thư viện string

mình có dùng thư viện rồi ,mình cho chạy vòng lặp for ngược,gặp khoảng trắng đầu tiên mình dùng hàm đó mà ko ra bạn

1 Like

sao kì vậy ta :worried: Cho minh xem code thử đi.

1 Like

nếu bạn dùng vòng for ngược gặp khoảng trắng đầu tiên rồi thì cần lưu lại vị trí đấy rồi thoát vòng lặp.
ví dụ:

int pos=0;
for(int i=s.length();i>=0;i--)
   if(s[i]==' '){
      pos=i;
      break;
   }
string ho=s.substr(0,pos);
string ten=s.substr(pos+1);
1 Like

à mình biết mình sai chỗ nào rồi,mình quên lưu khoảng trắng ,cảm ơn bạn nha

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