Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: thuật toán tách họ tên trong c++

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    1

    Mặc định thuật toán tách họ tên trong c++

    chào các bạc tiên bối trong diễn đàn em là thành viên mới kính mong các bác chỉ giáo giúp em.lễ ra mắt là bài c++ này mong các bác giúp em với .ông thầy bảo bọn em viết chuơng trình nhập vào họ tên va tách họ tên riêng ra .kính mong các bậc tiền bối chỉ giáo

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Bạn tìm trong diễn đàn với từ khóa strtok nó sẽ cho bạn câu trả lời này.

    Nếu là mới tham gia nên đọc Nội quy và các chỉ dẫn trước khi tham gia thảo luận nhé. Nó có ích cho bạn đấy, chúc bạn may mắn!
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  3. #3
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    Gợi ý chút nhé:
    Ex: Who i`m i?
    Họ là Who
    Đệm là i`m
    Tên là i
    ->nó cách nhau bởi khoảng trắng (blank)
    ->Để tách một cách chắc chắn kể cả nếu không có tên đệm thì
    1.Tách Tên(Lui từ cuối)(Lưu vị trí Tail)
    2.Tách họ(Tiến từ đầu)(Lưu vị trí Head)
    3.Còn lại là cái tên đệm(Head->Tail)
    Dùng lính canh
    Cứ vậy làm là được
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Hỏi nếu có thắc mắc :
    C++ Code:
    1. #include <iostream>
    2. #include <stack>
    3. #include <string>
    4.  
    5. //Tạo 1 stack của string đặt tên là container.
    6. typedef std::stack<std::string> container;
    7.  
    8. //delims là kí hiệu cần cắt chuỗi ra.
    9. //Hàm này nhận vào 1 chuỗi + 1 cotainer + 1 kí tự cần được tách ra.
    10. void cut_string_by_space(const std::string& str, container& name, const std::string& delims){
    11.   //size_type là kiểu của C++ string.
    12.   string::size_type start = 0;
    13.   string::size_type end  = str.find_first_of(delims, start);
    14.   string::size_type length = str.length();
    15.   //Từ cần tìm
    16.   string word;
    17.   while(string::npos != end && end < length){
    18.     word = str.substr(start, end - start);
    19.     name.push(word);
    20.     start = end + 1;
    21.     end = str.find_first_of(delims, start);
    22.   }
    23.   end = str.find_last_of(" ") + 1;
    24.   name.push(str.substr(end));
    25. }
    26.  
    27. void print_name_seperate_by_line(container& name){
    28.   std::cout << "\n------__\n";
    29.   while(!name.empty()){
    30.     std::cout << "\t" << name.top() << "\n";
    31.     name.pop();
    32.   }
    33. }
    34.  
    35. int main()
    36. {
    37.   container name;
    38.   std::string sentence;
    39.   std::cout << "Enter full name: \n";
    40.   getline(std::cin, sentence);
    41.  
    42.   cut_string_by_space(sentence, name, " ");
    43.   print_name_seperate_by_line(name);
    44.  
    45.   return 0;
    46. }
    Đã được chỉnh sửa lần cuối bởi rox_rook : 02-04-2008 lúc 12:14 PM.

  5. #5
    Ngày gia nhập
    11 2006
    Nơi ở
    Tiền Giang
    Bài viết
    28

    - Hàm Tách Họ (gợi ý), viết bằng VC++

    Visual C++ Code:
    1. CString Tach_Ho (CString strHoTen)
    2. {
    3.     //Xen khoang trang dau chuoi (neu co)
    4.     strHoTen.TrimLeft();
    5.  
    6.     //Tim vi tri khoang trang dau tien
    7.     int result = strHoTen.Find (' ');
    8.  
    9.     //Lay chuoi ben trai chuoi Ho Ten ban dau
    10.     //cho den vi tri khoang trang dau tien
    11.     strHoTen = strHoTen.Left(result);
    12.  
    13.     return strHoTen;
    14. }


    - Hàm Tách Tên (gợi ý), viết bằng VC++

    Visual C++ Code:
    1. CString Tach_Ten(CString strHoTen)
    2. {
    3.  
    4.     strHoTen.TrimRight();
    5.     int n = strHoTen.GetLength();
    6.    
    7.     //Tim vi tri khoang trang cuoi cung
    8.     int result = strHoTen.ReverseFind (' ');
    9.    
    10.     //Lay chuoi ben phai chuoi Ho Ten ban dau
    11.     //cho den vi tri khoang trang
    12.     strHoTen = strHoTen.Right((n-1)-result);
    13.  
    14.     strHoTen.TrimLeft();
    15.  
    16.     return strHoTen;
    17. }

    Hy vọng giúp được bạn. Thân !

Các đề tài tương tự

  1. Cơ sở làm huy hiệu, bảng tên nhân viên, bảng tên mica, bảng tên ăn mòn, bảng tên thay tên
    Gửi bởi tranngocson186 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 25-05-2013, 08:37 AM
  2. Thuật toán tìm 1 tên mà nhiều người trùng nhất trong danh sách n người.
    Gửi bởi Mr.Kutjs trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 24-09-2012, 08:56 AM
  3. CC B.I.G Tower 18 Phạm Hùng bán trong ngày - 22 tr/m2 ,ĐN ,vào tên ,thuế phí đầy đủ
    Gửi bởi mrdt004 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 18-07-2012, 09:36 AM
  4. CC B.I.G Tower 18 Phạm Hùng bán trong ngày - 23 tr/m2 ,tầng 18 ,ĐN ,vào tên ,thuế phí đầy đủ
    Gửi bởi Philong.dt005 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 17-07-2012, 11:46 AM
  5. CC B.I.G Tower 18 Phạm Hùng bán trong ngày - 22tr/m2 ,tầng 7 ,ĐN ,vào tên ,thuế phí đầy đủ
    Gửi bởi mrdt003 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 16-07-2012, 11:10 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn