Các biến và hằng kiểu chuỗi

Một phần của tài liệu Tài liệu lập trình C căn bản (Trang 147 - 150)

Tóm tắt bài học

10.1 Các biến và hằng kiểu chuỗi

Các biến chuỗi được sử dụng để lưu trữ một chuỗi các ký tự. Như các biến khác, các biến này phải được khai báo trước khi sử dụng. Ví dụ khai báo một biến chuỗi:

Một câu khai báo biến chuỗi điển hình là:

char str[10];

str là một biến mảng các ký tự có thể lưu giữ tối đa 10 ký tự. Giả sử str được gán một hằng chuỗi,

“WELL DONE”

Một hằng chuỗi là một dãy các ký tự nằm trong dấu nháy kép. Mỗi ký tự trong một chuỗi được lưu trữ như là một phần tử của mảng. Trong bộ nhớ, chuỗi được lưu trữ như sau:

‘W’ ‘E’ ‘L’ ‘L’ ‘ ’ ‘D’ ‘O’ ‘N’ ‘E’ ‘\0’

Ký tự ‘\0’ (null) được tự động thêm vào trong cách biểu diễn bên trong của chuỗi để chương trình có thể định vị được nơi kết thúc chuỗi.

Vì vậy, khi khai báo một biến chuỗi, nhớ dành một phần tử trống cho ký hiệu kết thúc null.

10.1.1 Con trỏ trỏ đến chuỗi

Chuỗi có thể được lưu và truy cập bằng cách sử dụng con trỏ kiểu ký tự. Một con trỏ kiểu ký tự trỏ đến một chuỗi được khai báo như sau:

char *pstr = “WELCOME”;

pstr là một con trỏ được khởi tạo để trỏ đến một hằng chuỗi. Con trỏ pstr có thể thay đổi để trỏ đến bất kì một chuỗi nào khác. Khi đó, sẽ không thể nào truy xuất đến chuỗi “WELCOME” mà pstr đang trỏ đến. Mặc dù khi con trỏ pstr trỏ đến một chuỗi khác thì ta không thể truy xuất đến chuỗi “WELCOME”được nữa.

pstr là một con trỏ được khởi tạo để trỏ đến một hằng chuỗi. Con trỏ có thể thay đổi để trỏ đến một nơi khác. Tuy nhiên, sự thay đổi sẽ làm cho chuỗi trở nên không thể truy cập được nữa.

10.1.2 Các thao tác nhập xuất chuỗi

Các thao tác nhập/xuất (I/O) chuỗi trong C được thực hiện bằng cách gọi các hàm. Các hàm này là một phần của thư viện nhập/xuất chuẩn tên stdio.h. Một chương trình muốn sử dụng các hàm nhập/xuất chuỗi phải có câu lệnh khai báo sau ở đầu chương trình:

#include <stdio.h>;

Khi chương trình có chứa câu lệnh này được biên dịch, thì nội dung của tập tin stdio.h sẽ trở thành một phần của chương trình.

Các thao tác nhập/xuất chuỗi đơn giản

Sử dụng hàm gets() là cách đơn giản nhất để nhập một chuỗi thông qua thiết bị nhập chuẩn.

Các ký tự sẽ được nhập vào cho đến khi nhấn phím Enter. Hàm gets() thay thế ký tự kết thúc trở về đầu dòng ‘\n’ bằng ký tự ‘\0’. Cú pháp hàm này như sau:

gets(str);

Trong đó str là một mảng ký tự đã được khai báo.

Tương tự, hàm puts() được sử dụng để hiển thị một chuỗi ra thiết bị xuất chuẩn. Ký tự xuống dòng sẽ kết thúc việc xuất chuỗi. Cú pháp hàm như sau:

puts(str);

Trong đó str là một mảng ký tự đã được khai báo và khởi tạo. Chương trình sau đây nhận vào một tên và hiển thị một thông báo.

Ví dụ 1:

#include <stdio.h>

void main()

{ char name[20];

/* name is declared as a single dimensional character array */

clrscr(); /* Clears the screen */

puts("Enter your name:"); /* Displays a message */

gets(name); /* Accepts the input */

puts("Hi there: ");

puts(name); /* Displays the input */

getch();

}

Nếu tên Lisa được nhập vào, chương trình trên cho ra kết quả:

Enter your name:

Lisa Hi there:

Lisa

Các thao tác N hập /X uất chuỗi có định dạng

Có thể sử đụng các hàm scanf()printf() để nhập và hiển thị các giá trị chuỗi. Các hàm này được dùng để nhập và hiển thị các kiểu dữ liệu hỗn hợp trong một câu lệnh duy nhất. Cú pháp để nhập một chuỗi như sau:

scanf(“%s”, str);

Trong đó ký hiệu định dạng %s cho biết rằng một giá trị chuỗi sẽ được nhập vào. str là một mảng ký tự đã được khai báo. Tương tự, để hiển thị chuỗi, cú pháp sẽ là:

printf(“%s”, str);

Trong đó ký hiệu định dạng %s cho biết rằng một giá trị chuỗi sẽ được hiển thị và str là một mảng ký tự đã được khai báo và khởi tạo. Hàm printf() có thể dùng để hiển thị ra các thông báo mà không cần kí tự định dạng.

Có thể sửa đổi chương trình bên trên để nhập vào và hiển thị một tên, sử dụng hàm scanf() và printf().

Ví dụ 2:

#include <stdio.h>

void main() {

char name[20];

/* name is declared as a single dimensional character array */

clrscr(); /* Clears the screen */

printf("Enter your name: "); /* Displays a message */

scanf(“%s”, name); /* Accepts the input */

printf("Hi there: %s", name); /* Displays the input */

getch();

}

Nếu nhập vào tên Brendan , chương trình trên cho ra kết quả:

Enter your name: Brendan Hi there: Brendan

Một phần của tài liệu Tài liệu lập trình C căn bản (Trang 147 - 150)

Tải bản đầy đủ (DOC)

(197 trang)
w