# GÓC SÁNG TẠO > Khu vực lập trình > Pascal/Delphi/Kylix >  Chuẩn hóa xâu

## nhumotcongio

Nhập vào 1 xâu kí tự. Đưa xâu đó về dạng chuẩn, nghĩa là:
- Không còn ô trống ở đầu và cuối xâu.
- Không còn 2 ô trống kề nhau.

----------


## nhilangdinh

> Nhập vào 1 xâu kí tự. Đưa xâu đó về dạng chuẩn, nghĩa là:
> - Không còn ô trống ở đầu và cuối xâu.
> - Không còn 2 ô trống kề nhau.


 Mình nhớ mình có post rồi:


```
var s:string;i:byte;
begin
          readln(s);
          while s[1]=' ' do delete(s,1,1);
          while s[length(s)]=' ' do delete(s,length(s),1);
          i:=1;
          while i<=length(s) do
                 if s[i]=' ' do delete(s,i,1) else inc(i);
          readln;
end.
```

----------


## danseoit

BẠN BINHNGUYEN viết lệnh If còn thiếu:
If (s_=' ') and (S[i+1]=' ') then delete(s,i,1) else inc(i);
_

----------


## ngobaolac

Bài này dễ mà [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA  l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR  EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]


```
Var St:String;
Begin
    Write('Nhap xau:'); Readln(St);
    While St[1]=#32 do Delete(St,1,1);
    While St[length(St)]=#32 do Delete(St,length(St),1);
    While Pos(#32#32,St)<>0 do Delete(St,Pos(#32#32,St),1);
    Writeln('Xau sau khi chuan hoa la:');
    Write(St);
    Readln;
End.
```

----------


## thethitotiu

> BẠN BINHNGUYEN viết lệnh If còn thiếu:
> If (s_=' ') and (S[i+1]=' ') then delete(s,i,1) else inc(i);__
> _


_
Uhm, đánh gấp quá mình cũng không để ý, thiếu mất vế logic thứ 2, nếu code mình sẽ không còn khoảng trắng nào._

----------


## BRASOL

Cách của speed dùng hàm pos cũng được đấy

----------


## arthome2015

Cách của binhnguyen i chỉ cần <length là được rồi. Vì nếu i=length mà tiếp tục kiểm tra vị trí i+1 tức là length+1 là động tới vị trí ko có thực, dễ bị lỗi lắm. Bài tập trên lớp làm không để ý nên vài lần cũng bị lỗi. Mảng là hay bị nhất, xâu thì chưa gặp mấy nhưng cũng nên đề phòng.

----------


## conggameviet

> Cách của binhnguyen i chỉ cần <length là được rồi. Vì nếu i=length mà tiếp tục kiểm tra vị trí i+1 tức là length+1 là động tới vị trí ko có thực, dễ bị lỗi lắm. Bài tập trên lớp làm không để ý nên vài lần cũng bị lỗi. Mảng là hay bị nhất, xâu thì chưa gặp mấy nhưng cũng nên đề phòng.


 Trong xâu mình nhớ không có bị exit code 201 vì vụ vượt giới hạn, mình chỉ bị mảng thôi.

----------


## vietshiro

Ừ, thế thì tốt. Cẩn tắc vô áy náy mà. Mình chỉ sợ động tới 2 giới hạn đầu cuối của xâu lưu trữ length của xâu với cái gì đó của nó nữa làm thay đổi xâu đó thôi. Còn mảng thì 1000000% là báo lỗi rồi.

----------

