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

Đề tài: Viết hàm tách tên và họ lót từ một chuỗi cho trước

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

    Red face Viết hàm tách tên và họ lót từ một chuỗi cho trước

    Viết hàm tách tên và họ lót từ một chuỗi cho trước

    các anh ơi giúp em giải bài toán trên nhé ^^ thankss all bro

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Duyệt chuỗi, tìm ra vị trí của khoảng trắng đầu tiên và cuối cùng. Chuỗi con từ khoảng trắng đầu tiên đến khoảng trắng cuối cùng là họ lót. Từ khoảng trắng cuối cùng đến hết chuỗi là phần tên.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    anh viết code dùm em luôn đi ameo.

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình gợi ý bạn thế này :

    C Code:
    1. void Tach(const char *chuoi, char *holot, char *ten)
    2. {
    3.     int i = 0;
    4.     int vitridau = -1, vitricuoi;
    5.  
    6.     while (chuoi[i] != 0)
    7.     {
    8.         if (chuoi[i] == ' ')
    9.         {
    10.             if (vitridau < 0)
    11.                 vitridau = i;
    12.             else
    13.                 vitricuoi = i;
    14.         }
    15.  
    16.         i++;
    17.     }
    18.  
    19.     int j = 0;
    20.  
    21.     for (i=vitridau+1;i<vitricuoi;i++)
    22.         holot[j++] = chuoi[i];
    23.     holot[j] = 0;
    24.    
    25.     i = vitricuoi + 1;
    26.     j = 0;
    27.     while (chuoi[i] != 0)
    28.     {
    29.         ten[j++] = chuoi[i];
    30.         i++;
    31.     }  
    32.     ten[j] = 0;
    33. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    12 2007
    Bài viết
    0

    Code:
    char* copi(char *s,int vt,int sl)
    {
    	char *st;
    	for(int i=vt;i<=vt+sl;i++)
       {
       	st=st+s[i];
       }
       st[sl+1]='\0';
       return st;
    }
    Mình viết 1 hàm tách tên như này ? Bạn giúp mình xemnos sai ở đâu với ? Chỉ rõ dùm mình với nha! Mình muốn viết giống hàm copy trong pascal

  6. #6
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Mặc định Viết hàm tách tên và họ lót từ một chuỗi cho trước

    Trong C bạn khổng thể cộng trực tiếp 2 mảng char, cụ thể là không thể st=st+s[i];
    C Code:
    1. char* copi(char *s,int vt,int sl)
    2. {
    3.      char *st;
    4.      int j=0;
    5.      for(int i=vt+1;i<vt+sl;i++) //thường là vt thực +1 vì chuỗi bắt đầu từ 0
    6.      {
    7.           st[j]=s[i];
    8.           j++;
    9.      }
    10.      st[sl+vt]='\0';
    11.    return st;
    12. }

  7. #7
    Ngày gia nhập
    12 2007
    Bài viết
    0

    Code:
    char* copy(char *s,int vt,int sl)
    {
     char *st;
       int j=0;
       int i=vt;
          st=(char*)malloc(sizeof(char));
    if(sl>0)
    {
       while(j<=sl)
        {
           st[j++]=s[i++];
          }
       st[sl]='\0';
       return st;
    }
    else return " ";
    }
    Code:
    char* tachten(char *s)
    {
     char *st;
       int vt,sl;
       int i,n;
       n=strlen(s);
       for(i=n;i>=0;i--)
       {
       if(s[i]==' ')
        {
           vt=i+1;
             break;
          }
       }
       sl=n-(vt);
       st=copy(s,vt,sl);
       return st;
    }
    Code:
    char* tachdem(char *s)
    {
     char*st;
     int x,y,n;
       x=strlen(tachho(s));
       y=strlen(tachten(s));
       n=strlen(s);
       st=copy(s,x+1,n-(x+y+2));
       return st;
    }
    Code:
    char* tachho(char *s)
    {
     char *st;
       int vt,sl;
       int i,n;
       n=strlen(s);
       for(i=0;i<=n;i++)
       {
       if(s[i]==' ')
        {
           sl=i;
             break;
          }
       }
       st=copy(s,0,sl);
       return st;
    }
    Mình đã viết được rồi. Mình đã thử và thấy đúng.Bạn nào có cách nào hay hơn ko?

  8. #8
    Ngày gia nhập
    10 2014
    Bài viết
    0

    e có 1 code ko dùng con trỏ (vì e chưa học con trỏ) nhung hơi dài:
    các a cho e xin ý kiến ạ:
    #include <stdio.h>
    #include"conio.h"
    int main(void)
    { int m,n;
    char a[100];;
    printf("nhap chuoi: ");
    gets(a);
    printf("ho: ");
    for( int i=0;;i++)
    { m=i+1;
    if(a[i]==' ') break;
    printf("%c",a[i]);
    }
    printf("\nten dem: ");
    for(;;m++)
    { n=m+1;
    if(a[m]==' ') break;
    printf("%c",a[m]);
    }
    printf("\nten: ");
    for(;;n++)
    {
    if(a[n]=='\0') break; printf("%c",a[n]);
    }
    getche();
    return 0;
    }

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

  1. Góp ý sửa lỗi code tách họ lót và tên
    Gửi bởi Lucky Bucky trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 13
    Bài viết cuối: 02-01-2014, 09:40 PM
  2. Vấn đề kiểm tra chữ viết Hoa ở chuỗi Họ Tên
    Gửi bởi duytranit trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 04-12-2013, 06:21 PM
  3. Miếng Lót Chuột hàng giảm giá
    Gửi bởi truongluan90 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: 23-02-2013, 10:32 PM
  4. Cơ sở sản xuất Miếng Lót Chuột, Mouse Pad giá gốc
    Gửi bởi rongvangtk 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: 08-02-2012, 09:31 PM
  5. tách tên và họ lót từ một chuỗi cho trước.
    Gửi bởi Con Nít trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 03-12-2009, 02:38 PM

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