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 dauint 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 giuawhile(++i< n)if( a[i] != ' ' || a[i-1] != ' ')tmp[++k] = a[i];//xoa dau cach o cuoiif( 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