Nhập họ tên, tách họ tên ra làm 2 phần họ và tên riêng


Nhập họ tên, tách họ tên ra làm 2 phần họ và tên riêng
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
int isAlpha( char c );
int main(){
   char fullName[30];   // // code design by SEO ANH

   cout<<"nhap vao ho va ten: \n";
   gets(fullName);
   char* firstName,*lastName;
   char* pTail, *pHead, *pTeam,* copy;
   pTail = fullName + strlen( fullName ) - 1;
   /* Tach ten */
   /* dong while( !( isAlpha( *pTail ) ) ) de kiem tra cac ky tu cuoi cua
   fullName co phai la khoang trang khong ? vi du fullName = "Nguyen Van Teo"
   thi dong while khong chay con neu fullName ="Nguyen Van Teo " co 1 khoang trang
   o cuoi do do pTail giam xuong va chi den dung ky tu 'o' thi dung */
   while( !( isAlpha( *pTail ) ) )
       pTail--;
   /* Dong pTeam = pTail thi pHead cung chi den ky tu 'o' giong nhu pTail
   dung while( isAlpha( *( pTeam - 1 ) ) ) de quet tu ky tu 'o' den ky tu 'T'
   thi dung=> pTeam gioi chi den ky tu 'T';*/
   pTeam = pTail;
   while( isAlpha( *( pTeam - 1 ) ) )
       pTeam--;

   pHead = pTeam;
   /* Cap phat bo nho cho con tro firstName de luu ten,
    pTeam chi ki tu dau cua ten, con pTail chi ky tu cuoi cua ten
    khi do ( pTail - pTeam ) + 1 do lon can cap phat de luu ten vao
    tuong tu nhu lastName*/
   firstName = new char[( pTail - pTeam ) + 1];
   copy = firstName;
   while( pHead <= pTail )
       /* Con tro copy chi phan tu dau cua firstName,
        gia tri copy va firstName la nhu nhau,
        lay tu ky tu cua pHead dang cho gan cho gia tri con tro copy */
       *copy++ = *pHead++;
   *copy = '\0';
   /* Tach ho va ten lot */
   while( !( isAlpha( *( pTeam - 1 ) ) ) )
       pTeam--;
   pHead = fullName;
   lastName = new char[( pTeam - pHead ) + 1];
   copy = lastName;
   do{
       *copy++ = *pHead++;
   }while( pHead <= pTeam);
   *copy = '\0';
   cout<<"Ten : "<<firstName<<endl;
   cout<<"Ho va ten dem : "<<lastName<<endl;
   delete[]lastName;
   delete[]firstName;
   getch();
   return 0;
}
int isAlpha( char c ){
   return(  (c >= 'A' && c <= 'Z' ) || ( c >= 'a' && c <= 'z' ) );



Nhãn bài viết: |
Blog, Updated at: 23:49