Xem mẫu

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