kiem tien, kiem tien online, kiem tien truc tuyen, kiem tien tren mang
Sunday, October 30, 2011

Chuẩn hóa xâu ký tự

Yêu cầu: Xóa hết các dấu cách thừa ở đầu, giữa và cuối.
Xây dựng giải thuât:
Mục đích: duyệt xâu và tìm tất cả các  vị trí thỏa mãn yêu cầu và lưu vào một mảng mới
char * chuan_hoa ( char a[] )
{
     //Xoa dau cach o dau
     tim phan tu dau tien cua xau khac dau cach;
     if( ton tai) luu lai vi tri do;
     else ket thuc;
    
     //Xoa dau cach o giua
     while( xâu con duyet duoc tiep)
     {
           
            if(it nhat mot trong 2 phan tu lien tiep a[i] va a[i-1] khac dau cach)
              luu lai vi tri a[i] do;
     }
    
     //Xoa dau cach o cuoi
     if(phan tu cuoi cung cua chuoi moi la dau cach)gan no bang '\0';
     else gan phan tu tiep theo bang '\0';
     
     tra ve xau da chuan hoa;


//Xoa cac khoang cach thua trong xau
#include"iostream.h"
#include"string.h"
using namespace std;
char* chuan_hoa(char a[])
{
     
     char tmp[125];
     int  n= strlen(a);
    //Xoa dau cach o dau
    int i = 0,k=0;
    while( i<n && a[i] == ' ')i++;
   
    if(i<n) *tmp = a[i];
    else return("Chua nhap xau");
   
    //Xoa dau cach o giua
    while(++i< n)
            if( a[i] != ' ' || a[i-1] != ' ')
                 tmp[++k] = a[i];
           
   
   
    //xoa dau cach o cuoi
    if( tmp[k]==' ')tmp[k] ='\0';
    tmp[++k] = '\0';
    return tmp;
}
int main()
{
    char a[125];
    cout<<"\nNhap xau a:"<<endl;
    cin.getline(a,125);
    cout<<"\nXau da duoc chuan hoa la:"<<endl;
    cout<<chuan_hoa(a)<< endl<< endl;
   
    system("pause");
    return 0;
}
   

0 comments:

Post a Comment

domain, domain name, premium domain name for sales

Popular Posts