2. 2
NN畛畛ii dungdung
畛畛nh nghnh ngh挑挑a Kia Ki畛畛u du d畛畛 lili畛畛uu
CC叩叩cc kiki畛畛uu dd畛畛 lili畛畛uu c董c董 bb畉a今nn
CC叩叩c kic ki畛畛u du d畛畛 lili畛畛u cu c坦坦 cc畉メ坤u tru tr炭炭cc
MM畛畛t st s畛畛 kiki畛畛u du d畛畛 lili畛畛u cu c坦坦 cc畉メ坤u tru tr炭炭c c董 bc c董 b畉a今nn
MM畉a今ngng
ChuChu畛畛ii k箪k箪 tt畛堰傘
StructStruct
5. 5
CC叩叩c kic ki畛畛u du d畛畛 lili畛畛u c董 su c董 s畛畛
KiKi畛畛u cu c坦坦 thth畛畛 tt畛堰傘 rr畛畛i ri r畉=此cc: S: S畛畛 nguy棚n.nguy棚n.
KiKi畛畛u cu c坦坦 thth畛畛 tt畛堰傘 kh担ng rkh担ng r畛畛i ri r畉=此cc: S: S畛畛
thth畛堰傘c.c.
6. 6
CC叩叩cc kiki畛畛uu ss畛畛 nguy棚nnguy棚n cc畛п薩aa CC
CC hh畛畛 trtr畛a撮 khkh叩叩 nhinhi畛畛uu kiki畛畛uu ss畛畛 nguy棚nnguy棚n
CC叩叩cc gigi叩叩 trtr畛畛 ll畛畛nn nhnh畉メ坤tt vv nhnh畛迋 nhnh畉メ坤tt 動動畛a撮cc 畛畛nhnh nghngh挑挑aa trongtrong th動th動
vivi畛畛nn limits.hlimits.h
Ki畛u 畛nh d畉ng k鱈ch th動畛c nh畛 nh畉t l畛n nh畉t
char %c 1 CHAR_MIN CHAR_MAX
unsigned char %c 1 0 UCHAR_MAX
short [int] %hi 2 SHRT_MIN SHRT_MAX
unsigned short%hu 2 0 USHRT_MAX
int %i 2 or 4 INT_MIN INT_MAX
unsigned int %u 2 or 4 0 UINT_MAX
long [int] %li 4 LONG_MIN LONG_MAX
unsigned long %lu 4 0 ULONG_MAX
7. 7
VV鱈鱈 dd畛メ札 vv畛畛 ss畛畛 nguy棚nnguy棚n
#include <stdio.h>
#include <limits.h>
int main()
{
unsigned long big = ULONG_MAX;
printf("minimum int = %i, ", INT_MIN);
printf("maximum int = %in", INT_MAX);
printf("maximum unsigned = %un", UINT_MAX);
printf("maximum long int = %lin", LONG_MAX);
printf("maximum unsigned long = %lun", big);
return 0;
} minimum int = -32768, maximum int = 32767
maximum unsigned = 65535
maximum long int = 2147483647
maximum unsigned long = 4294967295
8. 8
#include <stdio.h>
#include <limits.h>
int main()
{
char lower_a = 'a';
char lower_m = 'm';
printf("minimum char = %i, ", CHAR_MIN);
printf("maximum char = %in", CHAR_MAX);
printf(Sau '%c' la '%c'n", lower_a, lower_a + 1);
printf(Ky tu in hoa '%c'n", lower_m - 'a' + 'A');
return 0;
} minimum char = -128, maximum char = 127
Sau 'a' la 'b'
Ky tu in hoa 'M'
In ra m達 ASCII c畛a k箪 t畛
VV鱈鱈 dd畛メ札 kiki畛畛u k箪 tu k箪 t畛堰傘
Trong NNLT C,Trong NNLT C, k箪 tk箪 t畛堰傘
chch鱈鱈nh lnh l ss畛畛 nguy棚nnguy棚n
13. 13
畛畛nh nghnh ngh挑挑a kia ki畛畛u du d畛畛 lili畛畛u cu c坦坦 cc畉メ坤uu
trtr炭炭cc
KiKi畛畛u du d畛畛 lili畛畛u 動u 動畛a撮c x但y dc x但y d畛堰傘ng mng m畛畛i di d畛堰傘a tr棚na tr棚n
vivi畛畛c tc t畛畛 chch畛畛c li棚n kc li棚n k畉吹鎖t ct c叩叩c thc thnh phnh ph畉п婚n dn d畛畛
lili畛畛u cu c坦坦 kiki畛畛u du d畛畛 lili畛畛u 達 動u 達 動畛a撮c c 畛畛nh nghnh ngh挑挑a.a.
NhNh畛畛ng KDL 動ng KDL 動畛a撮c x但y dc x但y d畛堰傘ng nh動 thng nh動 th畉吹鎖 gg畛畛ii
ll KDL cKDL c坦坦 cc畉メ坤u tru tr炭炭c.c.
14. 14
MM畛畛t st s畛畛 kiki畛畛u du d畛畛 lili畛畛u cu c畉メ坤u tru tr炭炭cc
KiKi畛畛u mu m畉a今ngng
KiKi畛畛u chuu chu畛畛i k箪 ti k箪 t畛堰傘
KiKi畛畛u cu c畉メ坤u tru tr炭炭c mc m畉畉u tinu tin
16. 16
MM畉a今ngng ArrayArray
MM畛畛t st s畛畛 tt鱈鱈nh chnh ch畉メ坤tt
Khai bKhai b叩叩o mo m畉a今ng trong Cng trong C
Truy xuTruy xu畉メ坤t ct c叩叩c thc thnh phnh ph畉п婚nn
TruyTruy畛畛n tham sn tham s畛畛 kiki畛畛u mu m畉a今ng cho hng cho hmm
MM畛畛t st s畛畛 thao tthao t叩叩c c董 sc c董 s畛畛
MM畉a今ng nhing nhi畛畛u chiu chi畛畛uu
17. 17
MM畉a今ngng MM畛畛t st s畛畛 tt鱈鱈nh chnh ch畉メ坤tt
MM畉a今ng lng l mm畛畛t kit ki畛畛u du d畛畛 lili畛畛u cu c坦坦 cc畉メ坤u tru tr炭炭c do ng動c do ng動畛畛i li l畉畉pp
trtr狸狸nh nh 畛畛nh nghnh ngh挑挑aa
DD湛湛ng bing bi畛畛u diu di畛畛n cn c叩叩c c 畛畛i t動i t動畛a撮ng dng d畛畛 lili畛畛uu 畛畛 dd畉=此ng mng m畛畛tt
d達y cd達y c叩叩c thc thnh phnh ph畉п婚n cn c坦坦 cc湛湛ng king ki畛畛u vu v畛畛i nhaui nhau kiki畛畛u c董u c董
ss畛畛
NNLT C lu担n chNNLT C lu担n ch畛畛 畛畛nh mnh m畛畛t kht kh畛畛i nhi nh畛畛 li棚n tli棚n t畛メ札c choc cho
mm畛畛t bit bi畉吹鎖n kin ki畛畛u mu m畉a今ngng
KK鱈鱈ch th動ch th動畛畛c cc c畛п薩a ma m畉a今ng 動ng 動畛a撮c xc x叩叩c c 畛畛nh ngay khi khainh ngay khi khai
bb叩叩o vo v kh担ng bao gikh担ng bao gi畛畛 thay thay 畛畛ii
18. 18
MM畉a今ngng Khai bKhai b叩叩o trong Co trong C
typedeftypedef kiki畛畛uc董suc董s畛畛 T棚nkiT棚nki畛畛uu[[SS畛畛ththnhphnhph畉п婚nn]];;
kiki畛畛u cu c畛п薩a ma m畛畛i thi thnh phnh ph畉п婚nn hh畉堰艮ng sng s畛畛, s, s畛畛 ththnh phnh ph畉п婚nn
tt畛畛i a ci a c畛п薩a ma m畉a今ngng
do ldo l畉畉p trp tr狸狸nh vi棚n nh vi棚n 畉戟嵯t t棚nt t棚n
typedeftypedef intint AINT[AINT[100100];];
////AINTAINT ll kiki畛畛u mu m畉a今ng bing bi畛畛u diu di畛畛n d達y gn d達y g畛畛m 100 thm 100 thnh phnh ph畉п婚n intn int
AINTAINT a;a; //a: bi//a: bi畉吹鎖n kin ki畛畛u AINTu AINT
19. 19
MM畉a今ngng VV鱈鱈 dd畛メ札
#define SIZE 10
int a[5]; // a d達y g畛m 5 s畛 nguy棚n
long int big[100]; // big: chi畉m 400 bytes!
double d[100]; // d: chi畉m 800 bytes!
long double v[SIZE];// v:10 long doubles
20. 20
MM畉a今ngng VV鱈鱈 dd畛メ札
int a[5] = { 10, 20, 30, 40, 50};
double d[100] = { 1.5, 2.7};
short primes[] = { 1, 2, 3, 5, 7, 11, 13};
long b[50] = { 0 };
int i = 7;
const int c = 5;
int a[i];
double d[c];
short primes[];
kh畛i tr畛 cho 5
thnh ph畉n
2 thnh ph畉n
畉u ti棚n 動畛c
kh畛i tr畛, ph畉n
c嘆n l畉i: 0
compiler x叩c 畛nh
k鱈ch th動畛c g畛m 7
thnh ph畉n c叩ch nhanh nh畉t 畛
kh畛i tr畛 t畉t c畉 c叩c
thnh ph畉n b畉ng 0
21. 21
CC叩叩c thc thnh phnh ph畉п婚n cn c畛п薩a ma m畉a今ng 動ng 動畛a撮c truy xuc truy xu畉メ坤t th担ng qua cht th担ng qua ch畛畛 ss畛畛
cc畛п薩a cha ch炭炭ngng 0..size0..size--11
Thao tThao t叩叩c truy xuc truy xu畉メ坤t kh担ng kit kh担ng ki畛畛m tra gim tra gi畛畛i hi h畉=此n cn c畛п薩a cha ch畛畛 ss畛畛
int main()
{
int a[6];
int i = 7;
a[0] = 59;
a[5] = -10;
a[i/2] = 2;
a[6] = 0;
a[-1] = 5;
return 0;
}
0
a
1
2
3
4
5
MM畉a今ngng Truy xuTruy xu畉メ坤t ct c叩叩c phc ph畉п婚n tn t畛畛
22. 22
TruyTruy畛畛n tham sn tham s畛畛 MM畉a今ng cho hng cho hmm
Tham sTham s畛畛 kiki畛畛u mu m畉a今ng 動ng 動畛a撮c truyc truy畛畛n cho hn cho hm chm ch鱈鱈nh lnh l 畛畛a cha ch畛畛
cc畛п薩a pha ph畉п婚n tn t畛畛 畉п婚u ti棚n tr棚n mu ti棚n tr棚n m畉a今ngng
SS畛畛 ththnh phnh ph畉п婚n trong tham sn trong tham s畛畛 mm畉a今ng cng c坦坦 thth畛畛 畛畛 trtr畛畛ng.ng.
SS畛畛 ththnh phnh ph畉п婚n thn th畛堰傘c sc s畛堰傘 動動畛a撮c sc s畛畛 dd畛メ札ng phng ph畉a今i truyi truy畛畛n qua mn qua m畛畛tt
tham stham s畛畛 khkh叩叩c (vd: size)c (vd: size)
int add_elements(int a[], int size)
{
int add_elements(int *p, int size)
{
23. 23
VV鱈鱈 dd畛メ札
#include <stdio.h>
void sum(long [], int);
int main(void) {
long primes[6] = { 1, 2,
3, 5, 7, 11 };
sum(primes, 6);
printf("%lin", primes[0]);
return 0;
}
void sum(long a[], int sz) {
int i;
long total = 0;
for(i = 0; i < sz; i++)
total += a[i];
a[0] = total;
}
1
2
3
5
7
11
primes
a
sz 6
t畛ng 動畛c l動u vo
ph畉n t畛 畉u ti棚n
d湛ng 畛 ki畛m tra
gi畛i h畉n ch畛 s畛
28. 28
MM畉a今ngng TT狸狸m vm v畛畛 trtr鱈鱈 X trong d達yX trong d達y
//input: d達y (a, N), X
//output: V畛 tr鱈 c畛a X, -1 n畉u kh担ng c坦
intint Search(int a[], int N, int X)Search(int a[], int N, int X)
{{
for (int i = 0; i < N; i ++)for (int i = 0; i < N; i ++)
if (a[i] == X)if (a[i] == X)
return i;return i;
returnreturn --1;1;
}}
BBi toi to叩叩n: Tn: T狸狸m vm v畛畛 trtr鱈鱈 X tr棚n mX tr棚n m畉a今ng a ang cng a ang c坦坦 N thN thnh phnh ph畉п婚n.n.
GiGi畉a今i phi ph叩叩p: Tp: T狸狸m tum tu畉п婚n tn t畛堰傘
29. 29
MM畉a今ngng Th棚m mTh棚m m畛畛t tht thnh phnh ph畉п婚n dn d畛畛 lili畛畛uu
BBi toi to叩叩n: cn: c畉п婚n th棚m thn th棚m thnh phnh ph畉п婚n dn d畛畛 lili畛畛u X vu X vo mo m畉a今ng ang a
ang cang c坦坦 N thN thnh phnh ph畉п婚n.n.
Hai tr動Hai tr動畛畛ng hng h畛a撮p cp c畉п婚n xem xn xem x辿辿t:t:
D達y ch動a cD達y ch動a c坦坦 thth畛畛 tt畛堰傘
Th棚m X vTh棚m X vo cuo cu畛畛i a.i a.
D達y 達 cD達y 達 c坦坦 thth畛畛 tt畛堰傘
TT狸狸m vm v畛畛 trtr鱈鱈 thth鱈鱈ch hch h畛a撮p, chp, ch竪竪n X vn X voo
30. 30
MM畉a今ngng Th棚m X vTh棚m X vo cuo cu畛畛i d達yi d達y
Th棚m 15 vo (a, 7)
N = 7N = 8
a[N] = X;
N ++;X
31. 31
MM畉a今ngng ChCh竪竪n X vn X vo d達y tng do d達y tng d畉п婚nn
Ch竪n 6 vo (a, 7)
N = 7N = 8
X
V畛 tr鱈 th鱈ch h畛p: 4
pos
32. 32
MM畉a今ngng ChCh竪竪n X vn X vo d達y tng do d達y tng d畉п婚nn
//input: d達y (a, N) tng d畉n, X
//output: d達y (a, N) 達 c坦 X 畛 炭ng v畛 tr鱈
voidvoid Insert(int a[], int &N, int X)Insert(int a[], int &N, int X)
{{
int pos;int pos;
for (pos = N; (pos>0)&&(a[posfor (pos = N; (pos>0)&&(a[pos--1]>X); pos1]>X); pos ----))
a[pos] = a[posa[pos] = a[pos 1];1];
a[pos] = X;a[pos] = X;
N ++;N ++;
}}
33. 33
MM畉a今ngng LoLo畉=此i bi b畛迋 mm畛畛t tht thnh phnh ph畉п婚n dn d畛畛 lili畛畛uu
BBi toi to叩叩n: lon: lo畉=此i bi b畛迋 ththnh phnh ph畉п婚n dn d畛畛 lili畛畛u X ra khu X ra kh畛迋ii
mm畉a今ng a ang cng a ang c坦坦 N thN thnh phnh ph畉п婚n.n.
H動H動畛畛ng ging gi畉a今i quyi quy畉吹鎖t: xt: x叩叩c c 畛畛nh vnh v畛畛 trtr鱈鱈 cc畛п薩a X, na X, n畉吹鎖u tu t狸狸mm
thth畉メ坤y thy th狸狸 dd畛畛n cn c叩叩c phc ph畉п婚n tn t畛畛 畛畛 phph鱈鱈a sau l棚n a sau l棚n 畛畛 ll畉メ坤p vp voo
chch畛畛 trtr畛畛ng. 2ng. 2 tr動tr動畛畛ng hng h畛a撮p:p:
D達y kh担ng cD達y kh担ng c坦坦 thth畛畛 tt畛堰傘: l: l畉メ坤p php ph畉п婚n tn t畛畛 cucu畛畛i l棚ni l棚n
D達y 達 thD達y 達 th畛畛 tt畛堰傘: d: d畛畛i ti t畉メ坤t ct c畉a今 cc叩叩c phc ph畉п婚n tn t畛畛 畛畛 sau vsau v鱈鱈
trtr鱈鱈 cc畛п薩a X l棚n tr動a X l棚n tr動畛畛c 1 vc 1 v畛畛 trtr鱈鱈..
34. 34
N = 8
MM畉a今ngng LoLo畉=此i bi b畛迋 X ra khX ra kh畛迋i d達y tngi d達y tng
Lo畉i 5 kh畛i (a, 8)
N = 7
pos
T狸m v畛 tr鱈 c畛a 5
X
D畛n c叩c v畛 tr鱈 4, 5, 6, 7 l棚n
35. 35
MM畉a今ngng LoLo畉=此i bi b畛迋 X ra khX ra kh畛迋i d達y tngi d達y tng
//input: d達y (a, N), X
//output: d達y (a, N) 達 lo畉i b畛 1 thnh ph畉n X
intint Remove(int a[], int &N, int X)Remove(int a[], int &N, int X)
{{
int pos = Search(a, N, X);int pos = Search(a, N, X);
if (pos ==if (pos == --1)1) //kh担ng c//kh担ng c坦坦 X trong d達yX trong d達y
return 0;return 0;
NN ----;;
for (; (pos < N); pos ++)for (; (pos < N); pos ++)
a[pos] = a[pos + 1];a[pos] = a[pos + 1];
return 1;return 1;
}}
36. 36
MM畉a今ngng SS畉畉p xp x畉吹鎖pp
BBi toi to叩叩n: Sn: S畉畉p xp x畉吹鎖p cp c叩叩c thc thnh phnh ph畉п婚n cn c畛п薩a (a (a,a, N)N) 畛畛 thuthu
動動畛a撮c d達y tng dc d達y tng d畉п婚nn
GiGi畉a今i phi ph叩叩p: Tp: T狸狸m cm c叩叩ch trich tri畛畛t ti棚u tt ti棚u t畉メ坤t ct c畉a今 cc叩叩c nghc ngh畛畛ch thch th畉吹鎖
cc畛п薩a d達ya d達y
ThuThu畉畉t tot to叩叩n sn s畉畉p xp x畉吹鎖pp 畛畛i chi ch畛畛 trtr畛堰傘c tic ti畉吹鎖pp
42. 42
MM畉a今ngng SS畉畉p xp x畉吹鎖p p 畛畛i chi ch畛畛
void Swap(int &x, int &y)
{
int t = x; x = y; y = t;
}
void InterchangeSort(int a[], int N)
{
int i, j;
for (i = 0 ; i<N-1 ; i++)
for (j =i+1; j < N ; j++)
if(a[j]< a[i])
Swap(a[i],a[j]);
}
43. 43
MM畉a今ng nhing nhi畛畛u chiu chi畛畛uu
C kh担ng hC kh担ng h畛畛 trtr畛a撮 mm畉a今ng nhing nhi畛畛u chiu chi畛畛u. Tuy nhi棚n cu. Tuy nhi棚n c坦坦 thth畛畛 titi畉吹鎖pp
cc畉畉n theo h動n theo h動畛畛ng: Mng: M畉a今ng 2 ching 2 chi畛畛u lu l mm畉a今ng mng m畛畛t chit chi畛畛u mu m mm畛畛ii
ththnh phnh ph畉п婚n cn c畛п薩a na n坦坦 ll mm畛畛t mt m畉a今ng mng m畛畛t chit chi畛畛u.u.
float rainfall[12][365];
rainfall l m畉ng g畛m 12
thnh ph畉n, m畛i thnh ph畉n l
m畉ng g畛m 365 s畛 float
short exam_marks[500][10];
exam_marks l m畉ng g畛m
500 thnh ph畉n, m畛i thnh
ph畉n l m畉ng 10 s畛 short
const int brighton = 7;
int day_of_year = 238;
rainfall[brighton][day_of_year] = 0.0F;
44. 44
TT坦坦m l動m l動畛a撮cc
Khai bKhai b叩叩o mo m畉a今ng trong Cng trong C
Truy xuTruy xu畉メ坤t ct c叩叩c phc ph畉п婚n tn t畛畛
TruyTruy畛畛n tham sn tham s畛畛 kiki畛畛u mu m畉a今ng cho hng cho hmm
CC叩叩c thao tc thao t叩叩c: nhc: nh畉畉p, xup, xu畉メ坤t, th棚m/ht, th棚m/h畛п薩y 1 thy 1 thnh phnh ph畉п婚n,n,
tt狸狸m kim ki畉吹鎖m, sm, s畉畉p xp x畉吹鎖pp
MM畉a今ng nhing nhi畛畛u chiu chi畛畛uu
49. 49
CC坦坦 thth畛畛 nhnh畉畉p / xup / xu畉メ坤t chut chu畛畛i k箪 ti k箪 t畛堰傘 s bs b畉堰艮ng cng c叩叩ch nhch nh畉畉p tp t畛畛ng k箪ng k箪
tt畛堰傘 cc畛п薩a sa s
HoHo畉戟嵯c sc s畛畛 dd畛メ札ng cng c叩叩c hc hmm scanfscanf vv printfprintf vv畛畛i k箪 ti k箪 t畛堰傘 畛畛nhnh
dd畉=此ngng %%ss
NhNh畉畉p chup chu畛畛i ci c坦坦 khokho畉a今ng trng tr畉畉ng dng d湛湛ng hng hm getsm gets
char name[100];
printf("Nhap mot chuoi ky tu %s: ");
gets(name);
ChuChu畛畛i k箪 ti k箪 t畛堰傘 -- NhNh畉畉p / xup / xu畉メ坤tt
char other[] = "Tony Blurt";
printf("%sn", other);
50. 50
L動u 箪L動u 箪: k: k畉吹鎖t tht th炭炭c chuc chu畛畛ii
#include <stdio.h>
int main()
{
char other[] = "Tony Blurt";
printf("%sn", other);
other[4] = '0';
printf("%sn", other);
return 0;
}
Tony Blurt
Tony
other
"Blurt" s畉 kh担ng
動畛c in ra
32 'B' 'l' 'u' 'r' 0't''y'n'o''T'
51. 51
ChuChu畛畛i k箪 ti k箪 t畛堰傘 MM畛畛t st s畛畛 hhm th動 vim th動 vi畛畛nn
LL畉メ坤y y 畛畛 ddi chui chu畛畛ii
l =l = strlenstrlen(s);(s);
畛畛i toi ton bn b畛畛 cc叩叩c k箪 tc k箪 t畛堰傘 cc畛п薩a chua chu畛畛i thi thnh IN HOAnh IN HOA
struprstrupr(s);(s);
畛畛i toi ton bn b畛畛 cc叩叩c k箪 tc k箪 t畛堰傘 cc畛п薩a chua chu畛畛i thi thnhnh in th動in th動畛畛ngng
strlwrstrlwr(s);(s);
52. 52
ChuChu畛畛i k箪 ti k箪 t畛堰傘 MM畛畛t st s畛畛 hhm th動 vim th動 vi畛畛nn
So sSo s叩叩nh chunh chu畛畛i: so si: so s叩叩nh theo thnh theo th畛畛 tt畛堰傘 tt畛畛 ii畛畛nn
Ph但n biPh但n bi畛畛t IN HOAt IN HOA in th動in th動畛畛ng:ng:
intint strcmpstrcmp(const char *s1, const char *s2);(const char *s1, const char *s2);
Kh担ng ph但n biKh担ng ph但n bi畛畛t IN HOAt IN HOA in th動in th動畛畛ng:ng:
intint stricmpstricmp(const char *s1, const char *s2);(const char *s1, const char *s2);
53. 53
#include <stdio.h>
int main()
{
char s1[] = "Minor";
char s2[] = "Tony";
int cmp = strcmp(s1, s2);
if (cmp < 0)
printf("%s < %s", s1, s2);
else
if (cmp == 0)
printf("%s = %s", s1, s2);
else
printf("%s > %s", s1, s2);
return 0;
}
ChuChu畛畛i k箪 ti k箪 t畛堰傘 vv鱈鱈 dd畛メ札 strcmpstrcmp
Minor < Tony
54. 54
ChuChu畛畛i k箪 ti k箪 t畛堰傘 MM畛畛t st s畛畛 hhm th動 vim th動 vi畛畛nn
GG叩叩n nn n畛畛i dung chui dung chu畛畛i:i:
oo ChCh辿辿p top ton bn b畛畛 chuchu畛畛i source sang chui source sang chu畛畛i dest:i dest:
intint strcpystrcpy(char *dest, const char *src);(char *dest, const char *src);
oo ChCh辿辿p tp t畛畛i a n k箪 ti a n k箪 t畛堰傘 tt畛畛 source sang dest:source sang dest:
intint strncpystrncpy(char *dest,(char *dest,
const char *src, int n);const char *src, int n);
TT畉=此o chuo chu畛畛i mi m畛畛i ti t畛畛 chuchu畛畛i 達 ci 達 c坦坦::
char *char *strdupstrdup(const char *src);(const char *src);
64. 64
KiKi畛畛u cu c畉メ坤u tru tr炭炭cc
KhKh叩叩i nii ni畛畛mm
Khai bKhai b叩叩oo
Truy xuTruy xu畉メ坤t ct c叩叩c thc thnh phnh ph畉п婚nn
CC畉メ坤u tru tr炭炭c & mc & m畉a今ngng
Con trCon tr畛迋 畉吹鎖n cn c畉メ坤u tru tr炭炭cc
65. 65
KhKh叩叩i nii ni畛畛mm
CC畉メ坤u tru tr炭炭c lc l kiki畛畛u du d畛畛 lili畛畛u gu g畛畛m mm m畛畛t nht nh坦坦m cm c叩叩cc
ththnh phnh ph畉п婚n cn c坦坦 kiki畛畛u kh担ng giu kh担ng gi畛畛ng nhau, mng nhau, m畛畛ii
ththnh phnh ph畉п婚n 動n 動畛a撮c xc x叩叩c c 畛畛nh bnh b畉堰艮ng mng m畛畛t t棚n ri棚ngt t棚n ri棚ng
bibi畛畛t.t.
KiKi畛畛u cu c畛п薩a ma m畛畛i thi thnh phnh ph畉п婚n trong cn trong c畉メ坤u tru tr炭炭clcl mm畛畛tt
kiki畉吹鎖u 達 動u 達 動畛a撮c c 畛畛nh nghnh ngh挑挑a tr動a tr動畛畛c, kc, k畛畛 cc畉a今 mm畉a今ng vng v
cc叩叩c cc c畉メ坤u tru tr炭炭c khc kh叩叩c.c.
66. 66
CC畉メ坤u tru tr炭炭cc Khai bKhai b叩叩o trong Co trong C
MM畛畛t kit ki畛畛u cu c畉メ坤u tru tr炭炭c 動c 動畛a撮c c 畛畛nh nghnh ngh挑挑a va v畛畛i ti t畛畛 khkh坦坦aa structstruct..
typedeftypedef structstruct T棚nkiT棚nki畛畛uu
{{
KiKi畛畛uthuthnhphnhph畉п婚nn T棚nthT棚nthnhphnhph畉п婚n;n;
KiKi畛畛uthuthnhphnhph畉п婚nn T棚nthT棚nthnhphnhph畉п婚n;n;
KiKi畛畛uthuthnhphnhph畉п婚nn T棚nthT棚nthnhphnhph畉п婚n;n;
KiKi畛畛uthuthnhphnhph畉п婚nn T棚nthT棚nthnhphnhph畉п婚n;n;
......
};};