0% found this document useful (0 votes)
44 views5 pages

Programming Methodology Lab 5: Character and String:, Qwurgxfwlrq

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 5

721'8&7+$1*81,9(56,7<

 )DFXOW\RI,QIRUPDWLRQ7HFKQRORJ\


PROGRAMMING METHODOLOGY
Lab 5: Character and String

 ,QWURGXFWLRQ

,QWKLVODEWXWRULDOZH
OOLQWURGXFHWKH&VWDQGDUGOLEUDU\IXQFWLRQVWKDWPDQLSXODWLQJVWULQJDQG
FKDUDFWHU7KHVHIXQFWLRQVHQDEOHRXUSURJUDPWRSURFHVVFKDUDFWHUVVWULQJVOLQHVRIWH[WDQGEORFN
RIPHPRU\

 )XQGDPHQWDORI6WULQJDQG&KDUDFWHU

$VWULQJLVDVHULHVRIFKDUDFWHUVWUHDWHGDVDVLQJOHXQLW$VWULQJPD\LQFOXGHOHWWHUVGLJLWVDQG
YDULRXV VSHFLDO FKDUDFWHUV VXFK DV ൅ Ǧ ȗ Ȁ DQG ̈́ 6WULQJ OLWHUDOV RU VWULQJ FRQVWDQWV LQ & DUH
ZULWWHQLQGRXEOHTXRWDWLRQPDUNV)RUH[DPSOHWRUHSUHVHQWDQDPHZHGHFODUHDV-RKQ6PLWK
RUDVWUHHWDGGUHVVLV1JX\HQ+XX7KR6WUHHW

$VWULQJLQ&LVDQDUUD\RIFKDUDFWHUVHQGLQJLQWKHQXOOFKDUDFWHU
?
$VWULQJLVDFFHVVHGYLDD
SRLQWHUWRWKHILUVWFKDUDFWHULQWKHVWULQJ7KHYDOXHRIDVWULQJLVWKHDGGUHVVRILWVILUVWFKDUDFWHU
7KXVLQ&LW
VDSSURSULDWHWRVD\WKDWDVWULQJLVDSRLQWHU±LQIDFWDSRLQWHUWRWKHVWULQJ
VILUVW
FKDUDFWHU,QWKLVVHQVHVWULQJVDUHOLNHDUUD\VEHFDXVHDQDUUD\LVDOVRDSRLQWHUWRLWVILUVWHOHPHQW

$FKDUDFWHUDUUD\RUDYDULDEOHRIW\SHchar*FDQEHLQLWLDOL]HGZLWKDVWULQJLQDGHILQLWLRQ(DFK
GHFODUDWLRQLQLWLDOL]HVDYDULDEOHWRWKHVWULQJ"blue"7KHILUVWGHFODUDWLRQFUHDWHVDQDUUD\ZLWK
HOHPHQWVFRQWDLQLQJWKHFKDUDFWHUV'b''l''u''e'DQG'\0'7KHVHFRQGGHFODUDWLRQ
FUHDWHVDSRLQWHUYDULDEOHclrPtrWKDWSRLQWVWRWKHVWULQJ"blue"VRPHZKHUHLQPHPRU\

char color[] = "blue";


char *clrPtr = "blue";

3ULQWLQJDVWULQJWKDWGRHVQRWFRQWDLQDWHUPLQDWLQJQXOOFKDUDFWHU
?
LVDQHUURU:KHQVWRULQJD
VWULQJRIFKDUDFWHUVLQDFKDUDFWHUDUUD\EHVXUHWKDWWKHDUUD\LVODUJHHQRXJKWRKROGWKHODUJHVW
VWULQJWKDWZLOOEHVWRUHG

Phuc Duong – http://it.tdt.edu.vn/~dhphuc  



721'8&7+$1*81,9(56,7<
 )DFXOW\RI,QIRUPDWLRQ7HFKQRORJ\

 6WDQGDUG,QSXWRXWSXW/LEUDU\)XQFWLRQV

7KLV VHFWLRQ SUHVHQWV VHYHUDO IXQFWLRQV IURP WKH VWDQGDUG LQSXWRXWSXW OLEUDU\ <stdio.h> 
VSHFLILFDOO\ IRU PDQLSXODWLQJ FKDUDFWHU DQG VWULQJ GDWD 7KH IROORZLQJ SURJUDP ZLOO SUHVHQW DQ
DSSURDFKWRUHDGDQGDVVLJQDQLQSXWVWULQJWRDUUD\YDULDEOH:HXVHIXQFWLRQVIJHWVVFDQIDQG
SXWFKDUWRUHDGDOLQHRIWH[WIURPWKHVWDQGDUGLQSXW NH\ERDUG DQGWKHQUHWXUQWKHQXPEHURI
FKDUDFWHUV VWULQJ
VOHQJWK )XQFWLRQIJHWVUHDGVFKDUDFWHUVIURPWKHVWDQGDUGLQSXWLQWRLWVILUVW
DUJXPHQW±DQDUUD\RIFKDUV±XQWLODQHZOLQHRUWKHHQGRIILOHLQGLFDWRULVHQFRXQWHUHGRUXQWLO
WKHPD[LPXPQXPEHURIFKDUDFWHUVLVUHDG7KHPD[LPXPQXPEHURIFKDUDFWHUVLVRQHIHZHUWKDQ
WKHYDOXHVSHFLILHGLQIJHWV
VVHFRQGDUJXPHQW7KHWKLUGDUJXPHQWVSHFLILHVWKHVWUHDPIURPZKLFK
WRUHDGFKDUDFWHUV±LQWKLVFDVHZHXVHWKHVWDQGDUGLQSXWVWUHDP VWGLQ $QXOOFKDUDFWHU
?
LV
DSSHQGHGWRWKHDUUD\ZKHQUHDGLQJWHUPLQDWHV
1 #include <stdio.h>
2 #define SIZE 100
3
4 int getLength(const char*);
5
6 int main()
7 {
8 char str[SIZE]; // create char array
9
10 printf("Enter your name: ");
11 fgets(str, SIZE, stdin);
12
13 printf("String: %s\n", str);
14 printf("String's length: %d", getLength(str));
15
16 return 0;
17 }
18
19 int getLength(const char* str)
20 {
21 if(str[0] == '\0') return 0;
22
23 int length = 0;
24 while(str[length] != '\0')
25 {
26 length = length + 1;
27 }
29
29 return length - 1; // exclude new line character
30 }

 &KDUDFWHU+DQGOLQJ/LEUDU\

7KHFKDUDFWHUKDQGOLQJOLEUDU\ <ctype.h> LQFOXGHVVHYHUDOIXQFWLRQVWKDWSHUIRUPXVHIXOWHVWV


DQGPDQLSXODWLRQVRIFKDUDFWHUGDWD(DFKIXQFWLRQUHFHLYHVDQXQVLJQHGFKDU UHSUHVHQWHGDVDQ
Phuc Duong – http://it.tdt.edu.vn/~dhphuc  

721'8&7+$1*81,9(56,7<
 )DFXOW\RI,QIRUPDWLRQ7HFKQRORJ\

LQW &KDUDFWHUVDUHRIWHQPDQLSXODWHGDVLQWHJHUVEHFDXVHDFKDUDFWHULQ&LVDRQHE\WHLQWHJHU
7DEOHEHORZGHVFULEHVVRPHXVHIXOIXQFWLRQVWRPDQLSXODWHDFKDUDFWHU

3URWRW\SH 'HVFULSWLRQ

int isblank( int c );


5HWXUQV D WUXH YDOXH LI F LV D EODQN FKDUDFWHU WKDW VHSDUDWHV
ZRUGVLQDOLQHRIWH[WDQG IDOVH RWKHUZLVH
int isdigit( int c ); 5HWXUQVDWUXHYDOXHLIFLVDGLJLWDQG IDOVH RWKHUZLVH

int isalpha( int c ); 5HWXUQVDWUXHYDOXHLIFLVDOHWWHUDQGRWKHUZLVH

int isalnum( int c ); 5HWXUQVDWUXHYDOXHLIFLVDGLJLWRUDOHWWHUDQGRWKHUZLVH

int islower( int c ); 5HWXUQVDWUXHYDOXHLIFLVDORZHUFDVHOHWWHUDQGRWKHUZLVH

int isupper( int c ); 5HWXUQVDWUXHYDOXHLIFLVDQXSSHUFDVHOHWWHUDQGRWKHUZLVH

,IFLVDQXSSHUFDVHOHWWHUtolowerUHWXUQVFDVDORZHUFDVH
int tolower( int c );
OHWWHU2WKHUZLVHtolowerUHWXUQVWKHDUJXPHQWXQFKDQJHG
,IFLVDORZHUFDVHOHWWHUtoupperUHWXUQVFDVDQXSSHUFDVH
int toupper( int c );
OHWWHU2WKHUZLVHtoupperUHWXUQVWKHDUJXPHQWXQFKDQJHG
7KHSURJUDPEHORZLOOXVWUDWHVWKHVHIXQFWLRQV
1 #include <stdio.h>
2 #include <ctype.h>
3
4 int main()
5 {
6 printf("Is '8' digit? - %d\n", isdigit('8'));
7 printf("Is 'A' digit? - %d\n", isdigit('A'));
8 printf("Is 'a' in lower-case? - %d\n", islower('a'));
9
10 printf("To lower-case of 'A' - %c\n", tolower('A'));
11 printf("To upper-case of 'a' - %c\n", toupper('A'));
12
13 return 0;
14 }

 6WULQJ+DQGOLQJ/LEUDU\

7KHVWULQJKDQGOLQJOLEUDU\ <string.h> SURYLGHVPDQ\XVHIXOIXQFWLRQVIRUPDQLSXODWLQJ


VWULQJGDWDFRS\LQJVWULQJVFRQFDWHQDWLQJVWULQJVDQGFRPSDULQJVWULQJV7DEOHEHORZGHVFULEHV
VRPHSRSXODUIXQFWLRQLQ<string.h>OLEUDU\

 

Phuc Duong – http://it.tdt.edu.vn/~dhphuc  



721'8&7+$1*81,9(56,7<
 )DFXOW\RI,QIRUPDWLRQ7HFKQRORJ\

3URWRW\SH 'HVFULSWLRQ
char *strcpy
(char *s1, const char *s2) &RSLHVVWULQJVLQWRDUUD\V7KHYDOXHRIVLVUHWXUQHG
char *strncpy
(char *s1, const char *s2,
&RSLHVDWPRVWQFKDUDFWHUVRIVWULQJVLQWRDUUD\V7KH
size_t n) YDOXHRIVLVUHWXUQHG
$SSHQGV VWULQJ V WR DUUD\ V 7KH ILUVW FKDUDFWHU RI V
char *strcat
(char *s1, const char *s2) RYHUZULWHVWKHWHUPLQDWLQJQXOOFKDUDFWHURIV7KHYDOXH
RIVLVUHWXUQHG

char *strncat $SSHQGVDWPRVWQFKDUDFWHUVRIVWULQJVWRDUUD\V7KH


(char *s1, const char *s2, ILUVW FKDUDFWHU RI V RYHUZULWHV WKH WHUPLQDWLQJ QXOO
size_t n) FKDUDFWHURIV7KHYDOXHRIVLVUHWXUQHG

int strcmp &RPSDUHV WKH VWULQJ V ZLWK WKH VWULQJ V 7KH IXQFWLRQ
(const char *s1, const UHWXUQVOHVVWKDQRUJUHDWHUWKDQLIVLVHTXDOWROHVV
char *s2) WKDQRUJUHDWHUWKDQVUHVSHFWLYHO\
&RPSDUHV XS WR Q FKDUDFWHUV RI WKH VWULQJ V ZLWK WKH
int strncmp
(const char *s1, const
VWULQJ V 7KH IXQFWLRQ UHWXUQV  OHVV WKDQ  RU JUHDWHU
char *s2, size_t n) WKDQ  LI V LV HTXDO WR OHVV WKDQ RU JUHDWHU WKDQ V
UHVSHFWLYHO\
7KHSURJUDPEHORZLOOXVWUDWHVWKHVHIXQFWLRQV
1 #include <stdio.h>
2 #include <string.h>
3 #define SIZE 100
4
5 int main()
6 {
7 char str[] = "Happy New Year";
8 char y[] = " 2017";
9 char x[SIZE];
10
11 strcpy(x, str);
12 printf("x is copied: %s\n", x);
13
14 printf("Compare x and str: %d\n", strcmp(str, x));
15
16 printf("Concatenate y to x: %s\n", strcat(x, y));
17
18 return 0;
19 }

 ([HUFLVHV

 ,QSXWDVWULQJDQGUHWXUQWKHVWULQJ
VOHQJWK

 ,QSXWDVWULQJDQGSULQWLWLQUHYHUVHRUGHU

Phuc Duong – http://it.tdt.edu.vn/~dhphuc  



721'8&7+$1*81,9(56,7<
 )DFXOW\RI,QIRUPDWLRQ7HFKQRORJ\

 ,QSXWDVWULQJUHSUHVHQWDIXOOQDPHVSOLWDQGSULQWWKHILUVWQDPHDQGWKHODVWQDPH

 ,QSXWDVWULQJDQGQRUPDOL]HLW WULPWKHVSDFHEHIRUHLQVLGHDQGDIWHUWRORZHUHDFKWRNHQ


H[FHSWWKHILUVW )RUH[DPSOHZLWKWKHLQSXW " PrOgRaMmInG MeThOd "WKHRXWSXW

ZLOOEH"Programming Method"

 ,QSXWWZRVWULQJVDQGVFRQFDWHQDWLQJVWRV 1RWHGRQ


WXVHstring.hOLEUDU\ 

 ,QSXWDVWULQJDQGFKHFNZKHWKHUDFKDUDFWHUDSSHDUVRUQRW,I\HVUHWXUQWKHILUVWSRVLWLRQ

 ,QSXWDVWULQJDQGFKHFNZKHWKHUDFKDUDFWHUDSSHDUVRUQRW,I\HVUHWXUQWKHDOODSSHDULQJ
SRVLWLRQV

 ,QSXWDVWULQJDQGFKHFNZKHWKHUDZRUGDSSHDUVRUQRW,I\HVUHWXUQWKHILUVWSRVLWLRQ

 ,QSXWWZRVWULQJVDQGVUHWXUQWKHILUVWSRVLWLRQZKHUHVDSSHDUVLQV

,QSXWWZRVWULQJVVDQGSRVLWLRQ7KHQLQVHUWVWRVIURPWKLVSRVLWLRQ

,QSXWDVWULQJDQGWZRLQWHJHUQXPEHUVQDPHGQDQGSRVLWLRQ7KHQGHOHWHQFKDUDFWHUV
IURPSRVLWLRQRILQSXWVWULQJ

 5HIHUHQFH

>@ %ULDQ:.HUQLJKDQ 'HQQLV5LWFKLH  &3URJUDPPLQJ/DQJXDJHQG(GLWLRQ


3UHQWLFH+DOO
>@ 3DXO'HLWHO +DUYH\'HLWHO  &+RZWR3URJUDPWK(GLWLRQ3UHQWLFH+DOO
>@ &3URJUDPPLQJ7XWRULDO  7XWRULDOV3RLQW
>@ &3URJUDPPLQJ  :LNLERRNV

Phuc Duong – http://it.tdt.edu.vn/~dhphuc  




You might also like