Xâu ký tự (tt)

Một phần của tài liệu lap trinh can ban doc (Trang 38 - 42)

d. Phương pháp sắp xếp chèn (insertion sort)

5.5.4. Xâu ký tự (tt)

Cách sử dụng

Truy cập một kí tự trong xâu: cú pháp giống như mảng.

char s[50] = "I\'m a student" ;

cout << s[0] ; // in kí tự đầu tiên, tức kí tự 'I' s[1] = 'a' ; // đặt lại kí tự thứ 2 là 'a'

Không được thực hiện các phép toán trực tiếp trên xâu như:

char s[20] = "Hello", t[20] ; // khai báo hai xâu s và t t = "Hello" ; // sai, chỉ gán được khi khai báo

t = s ; // sai, không gán được toàn bộ mảng

if (s < t) … // sai, không so sánh được hai mảng

Toán tử nhập dữ liệu >> vẫn dùng được nhưng có nhiều hạn chế.

Chương 5: Phần: Lập trình có cấu trúc 39

5.5.4. Xâu ký tự (tt)

Phương thức nhập xâu (#include <iostream.h>)

Dùng hàm cin.getline(s,n) để nhập xâu kí tự. Hàm có 2 đối với s là

xâu cần nhập nội dung và n-1 là số kí tự tối đa của xâu. Ví dụ: Xét đoạn lệnh sau char s[10] ; cin.getline(s, 10) ; cout << s << endl ; cin.getline(s, 10) ; cout << s << endl ;

Chương 5: Phần: Lập trình có cấu trúc 40

5.5.4. Xâu ký tự (tt)

Một số hàm xử lí xâu (#include <string.h>) 1. strcpy(s, t) :

Hàm sẽ sao chép toàn bộ nội dung của xâu t (kể cả kí tự kết thúc

xâu) vào cho xâu s.

Để sử dụng hàm này cần đảm bảo độ dài của mảng s ít nhất cũng

bằng độ dài của mảng t. Ví dụ:

char s[10], t[10] ;

t = "Face" ; // không được dùngs = t ; // không được dùng s = t ; // không được dùng

strcpy(t, "Face") ; // được, gán "Face" cho t strcpy(s, t) ; // được, sao chép t sang s

Chương 5: Phần: Lập trình có cấu trúc 41

5.5.4. Xâu ký tự (tt)

Một số hàm xử lí xâu (#include <string.h>) 2. strncpy(s, t, n) :

Sao chép n kí tự của t vào s. Hàm này chỉ làm nhiệm vụ sao chép,

không tự động gắn kí tự kết thúc xâu cho s. Do vậy người sử dụng phải thêm câu lệnh đặt kí tự '\0' vào cuối xâu s sau khi sao chép xong.

Ví dụ:

char s[10], t[10] = "Steven";

strncpy(s, t, 5) ; // copy 5 kí tự "Steve" vào s s[5] = '\0' ; // đặt dấu kết thúc xâu

// in câu: Steve is young brother of Steven cout << s << " is young brother of " << t ;

Chương 5: Phần: Lập trình có cấu trúc 42

5.5.4. Xâu ký tự (tt)

Một số hàm xử lí xâu (#include <string.h>) 3. strcat(s, t);

Nối một bản sao của t vào sau s. Hàm sẽ loại bỏ kí tự kết thúc xâu

s trước khi nối thêm t. Việc nối sẽ đảm bảo lấy cả kí tự kết thúc của xâu t vào cho s (nếu s đủ chỗ) vì vậy NSD không cần thêm kí tự

Một phần của tài liệu lap trinh can ban doc (Trang 38 - 42)