Giào trình Lập trình C - Chương 4: Xâu ký tự - String

Xâu ký tự

 Lưu trữ xâu ký tự

 Khởi tạo và in nội dung xâu

 Nhập xâu từ bàn phím

 Một số ví dụ

 Một số hàm trong thư viện ctype.h và string.h

pdf17 trang | Chia sẻ: hienduc166 | Lượt xem: 946 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Giào trình Lập trình C - Chương 4: Xâu ký tự - String, để tải tài liệu về máy bạn click vào nút TẢI VỀ ở trên
4. Xâu ký tự – string 
Nội dung 
 Xâu ký tự 
 Lưu trữ xâu ký tự 
 Khởi tạo và in nội dung xâu 
 Nhập xâu từ bàn phím 
 Một số ví dụ 
 Một số hàm trong thư viện ctype.h và string.h 
4 Xâu ký tự – string 
 printf ("Programming in C is fun.\n"); 
"Programming in C is fun.\n" 
 Xâu ký tự: 
 là một dãy các ký tự, 
 Các ký tự có thể là chữ cái, chữ số hoặc cả các ký tự đặc 
biệt 
 Xâu ký tự được đặt trong dấu nháy kép " " 
 Xâu ký tự không có ký tự nào là xâu rỗng (viết là "") 
4 Xâu ký tự – string 
 Mảng ký tự 
char word [] = { 'H', 'e', 'l', 'l', 'o', '!' }; 
 Để in ra xâu ta in lần lượt từng ký tự 
 for ( i = 0; i < 6; ++i ) 
 printf ("%c", word[i]); 
  Nhược điểm: Phải luôn lưu 
thông tin về số lượng lý tự trong 
mảng ký tự 
Mảng word trong bộ nhớ 
4 Xâu ký tự – string 
 Giải pháp: sử dụng một ký tự đặc biệt (ký tự null) báo 
hiệu kết thúc xâu : '\0' 
const char word [] = { 'H', 'e', 'l', 'l', 'o', '!', '\0' }; 
 Tìm độ dài của xâu 
int count = 0; 
while ( str[count] != '\0' ) 
 ++count; 
4 Xâu ký tự – string 
 Khởi tạo 
 char tên_biến[độ_dài]={nội_dung}; 
 Ví dụ 
char word[] = { "Hello!" }; 
char word[] = "Hello!" ; 
char word[] = { 'H', 'e', 'l', 'l', 'o', '!', '\0' }; 
char word[10] = { "Hello!" }; 
char word[6] = { "Hello World!" }; ??? 
4 Xâu ký tự – string 
In nội dung: 
 Hàm printf 
 Hàm printf xác định kết thúc xâu bằng ký tự null 
 printf ("Programming in C is fun.\n"); 
 In nội dung mảng ký tự kết thúc bằng ký tự null (‘\0’) 
 printf ("%s\n", word); 
 Hàm puts 
 puts(tên_biến); 
4 Xâu ký tự – string 
#include 
int main (void) 
{ 
 int i = 0; 
 char str[30] = "This is a sample"; 
 char word[] = {'H', 'e', 'l', 'l', 'o', '!', '\0'}; 
 printf("Noi dung cac xau\n"); 
 printf("xau str: %s\n", str); 
 printf("xau word: %s\n", word); 
 for(i=0; i<4; i++) printf("%c", str[i]); 
 return 0; 
} 
4 Xâu ký tự – string 
Nhập xâu từ bàn phím 
 Hàm scanf( ) 
char string[81]; 
scanf ("%s", string); 
int main (void) 
{ 
char s1[81], s2[81], s3[81]; 
printf ("Enter text:\n"); 
scanf ("%s%s%s", s1, s2, s3); 
printf ("\ns1 = %s\ns2 = %s\ns3 = %s\n", 
s1, s2, s3); 
return 0; 
} 
4 Xâu ký tự – string 
 Hàm gets 
 gets(tên_biến); 
int main (void) 
{ 
char s1[81], s2[81], s3[81]; 
printf ("Nhap xau 1:"); gets(s1); 
printf ("Nhap xau 2:"); gets(s2); 
printf ("Nhap xau 3:"); gets(s3); 
printf ("\ns1 = %s\ns2 = %s\ns3 = %s\n", 
s1, s2, s3); 
return 0; 
} 
4 Xâu ký tự – string 
 VD1. Viết chương trình nhập nội dung xâu từ bàn phím bằng cách 
nhập lần lượt từng ký tự trong xâu sử dụng hàm getchar() 
 char character, buffer[81]; 
 int i = 0; 
 printf("Nhap xau:"); 
 do 
 { 
 character = getchar(); 
 buffer[i] = character; 
 ++i; 
 } 
 while ( character != '\n' ); 
 buffer[i - 1] = '\0'; 
 printf("Noi dung xau: %s\n",buffer); 
4 Xâu ký tự – string 
 VD2. Ghép nội dung hai xâu s1 và s2 lại với nhau để tạo thành 
xâu mới. 
 int i, j; 
 // copy noi dung s1 vao result 
 for ( i = 0; s1[i] != '\0'; ++i ) 
 result[i] = s1[i]; 
 // copy noi dung s2 vao result 
 for ( j = 0; s2[j] != '\0'; ++j ) 
 result[i + j] = s2[j]; 
 // them ky tu ket thuc vao xau ket qua 
 result [i + j] = '\0'; 
4 Xâu ký tự – string 
 VD3. So sánh hai xâu s1 và s2 có bằng nhau hay không. Hai xâu 
bằng nhau là hai xâu có các ký tự tại các vị trí tương ứng giống 
nhau. 
 int areEqual; 
 while ( s1[i] == s2 [i] && 
 s1[i] != '\0' && s2[i] != '\0' ) 
 ++i; 
 if ( s1[i] == '\0' && s2[i] == '\0' ) 
 areEqual = 1; 
 else 
 areEqual = 0; 
4 Xâu ký tự – string 
printf ("\aWARNING!!\n"); 
printf ("%i\t%i\t%i\n", a, b, c); 
printf ("\\t is the horizontal tab 
character.\n"); 
printf ("\"Hello,\" he said.\n"); 
Ký hiệu Ý nghĩa 
\a Audible alert 
\b Backspace 
\f Form feed 
\n Newline 
\r Carriage return 
\t Horizontal tab 
\v Vertical tab 
\\ Backslash 
\” Double quote 
\’ Single quote 
\? Question mark 
Một số ký tự đặc biệt 
4 Xâu ký tự – string 
 Một số hàm trong thư viện ctype.h 
 Hàm Ý nghĩa Ví dụ 
isalnum(c) Kiểm tra một ký tự có phải là chữ cái hoặc số hay 
không (A-Z, a-z, 0-9) 
isalnum (‘a’)  TRUE 
isalpha(c) Kiểm tra một ký tự có phải là chữ cái hay không (A-
Z, a-z) 
isalpha(‘3’)  FALSE 
isdigit(c) Kiểm tra một ký tự có phải là chữ số hay không (0-
9) 
islower(c) Kiểm tra một chữ cái là chữ thường (a-z). 
isupper(c) Kiểm tra một chữ cái là chữ hoa (A-Z). 
isspace(c) Kiểm tra ký tự có phải là dấu cách trống hay không 
isxdigit(c) Kiểm tra ký tự có phải là chữ số trong hệ hexa hay 
không (0-9, A-F, a-f). 
toupper(c) Chuyển ký tự chữ cái từ thường thành hoa 
(nếu không phải chữ cái thì không làm gì cả) 
tolower(c) Chuyển ký tự chữ cái từ hoa thành thường 
(nếu không phải chữ cái thì không làm gì cả) 
4 Xâu ký tự – string 
 Một số hàm trong thư viện string.h 
Hàm Ý nghĩa Ví dụ 
strcat Nối hai xâu ký tự lại làm một char *strcat(char *dest, 
const char *src); 
strncat Nối hai xâu ký tự lại làm một (chỉ nối n ký tự 
đầu của xâu nguồn) 
char *strncat(char *dest, 
const char *src, size_t n); 
strlen Trả về độ dài của một xâu ký tự (số ký tự có 
trong xâu) 
char str[]="Hello!"; 
printf("%d",strlen(str)); 
strcmp So sánh hai xâu ký tự, trả về giá trị if(strcmp(str,word)==0) 
 printf("They are equal!"); 
strcpy Copy nội dung của xâu thứ hai vào xâu thứ nhất strcpy(str,word); 
strchr Tìm kiếm một ký tự trong xâu. Nếu tìm thấy 
thì trả về vị trí xuất hiện đầu tiên 
if(strchr(string, character)) 
 puts("Character found"); 
strstr Tìm kiếm một xâu con trong xâu ký tự ban 
đầu. Hàm trả về con trỏ tới vị trí tìm được, 
nếu không tìm thấy thì trả về NULL 
pointer = strstr(string1, 
string2); 
 VD1. Viết chương trình nhập vào một xâu ký tự 
bất kỳ từ bàn phím. Đếm và in ra màn hình số 
lượng ký tự hoa, ký tự thường và chữ số trong 
xâu đó. 
 VD2. Viết chương trình in ra màn hình nội 
dung một xâu ký tự nhưng theo thứ tự ngược. 

File đính kèm:

  • pdfchapter4.String.pdf
  • pdfExamples.Chapter4.pdf
Bài giảng liên quan