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

Đề tài: Xử lí chuỗi. Mọi người xem hộ cái

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

    Angry Xử lí chuỗi. Mọi người xem hộ cái

    Em viết cái chương trình này để tách tên từ một cụm họ tên ấy. Nhưng sao chạy chương trình in ra kết quả lạ thế. Mọi người tư vấn cho em với.
    Code:
    #include<iostream.h>
    #include<string.h>
    
    char *LName(char *s) //day la ham de tach phan ten
    {
    int i;
    char *str, *temp;
    
    i= strlen(s);
    while (s[i] !=' ')
     {
      strcat(temp,s+i-1);
      i--;
     };
    
    strcpy(str,temp);
    return str;
    }
    
    int main()
    {
    char *Name;
    char *Lname;
    Name= "Huyen Dieu";   // chay thu
    Lname= LName(Name);
    cout<<Lname;
    return 1;
    };

    Em chạy chương trình thì nó in ra như này: ueuieuDieu Dieu
    Vậy là có tách đc phần "Dieu" nhưng cái phần "ueuieuDieu" giống kết quả từng lần của vòng lặp while thế. Cái này em ko hiểu?

  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    336

    cậu xài con trỏ lung tung thế mà in được thì mình cũng xin thua. Ko chịu cấp phát cho con trỏ gì cả.
    Edit: giải thuật của cậu cũng sai luôn, phải là
    Code:
    i= strlen(s);
    while (s[i] !=' ')  i--;
    strcat(temp,s+i+1);
    vì strcat là ghép chuỗi này vào cuối chuỗi kia, nên làm theo cậu thì máy in ra như vậy là đúng thôi
    Đã được chỉnh sửa lần cuối bởi 6220119 : 09-10-2008 lúc 10:10 PM.
    code ra gió bão

  3. #3
    Ngày gia nhập
    09 2007
    Bài viết
    724

    dùng C++ thì dùng std::string cho nó sướng. chứ dùng như kiểu char* này mệt .
    C++ Code:
    1.  
    2. #include<iostream>
    3. #include<string>
    4.  
    5. using namespace std;
    6.  
    7.  
    8. std::string LName(const std::string s)
    9. {  
    10.     int index;std::string sResult="";
    11.  
    12.     index = s.find_last_of(" ",s.length());
    13.  
    14.     return s.substr(index+1,s.length());
    15.  
    16. }
    17.  
    18. int main()
    19. {
    20.     cout<< LName("Hello zkday");
    21.     return 0;
    22. };
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 10-10-2008 lúc 02:31 AM.

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

  1. Bài tập C++ Cách để so sánh 2 chuỗi kí tự giữa chuỗi nhập từ phím và chuỗi từ file xem có giống nhau không?
    Gửi bởi davilson18 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 09-06-2012, 09:47 AM
  2. Lập trình C Thay thế chuỗi s1 trong chuỗi s bằng chuỗi s
    Gửi bởi duytue trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 23-09-2011, 04:16 PM
  3. thay thế chuỗi con thứ i trong chuỗi mẹ bằng 1 chuỗi khác
    Gửi bởi nhat1811 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 06-08-2011, 08:25 AM
  4. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  5. xem một từ trong chuỗi là một chuỗi con, sắp xếp các chuỗi con theo thứ tự tăng dần
    Gửi bởi qpkdct1101 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 20-01-2011, 08:22 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