Xem mẫu
- 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
- 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
- 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
- 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
- 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