Programming Methodology Lab 5: Character and String:, Qwurgxfwlrq
Programming Methodology Lab 5: Character and String:, Qwurgxfwlrq
Programming Methodology Lab 5: Character and String:, Qwurgxfwlrq
)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\
3ULQWLQJDVWULQJWKDWGRHVQRWFRQWDLQDWHUPLQDWLQJQXOOFKDUDFWHU
?
LVDQHUURU:KHQVWRULQJD
VWULQJRIFKDUDFWHUVLQDFKDUDFWHUDUUD\EHVXUHWKDWWKHDUUD\LVODUJHHQRXJKWRKROGWKHODUJHVW
VWULQJWKDWZLOOEHVWRUHG
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[WIURPWKHVWDQGDUGLQSXWNH\ERDUGDQGWKHQUHWXUQWKHQXPEHURI
FKDUDFWHUVVWULQJ
VOHQJWK)XQFWLRQIJHWVUHDGVFKDUDFWHUVIURPWKHVWDQGDUGLQSXWLQWRLWVILUVW
DUJXPHQW±DQDUUD\RIFKDUV±XQWLODQHZOLQHRUWKHHQGRIILOHLQGLFDWRULVHQFRXQWHUHGRUXQWLO
WKHPD[LPXPQXPEHURIFKDUDFWHUVLVUHDG7KHPD[LPXPQXPEHURIFKDUDFWHUVLVRQHIHZHUWKDQ
WKHYDOXHVSHFLILHGLQIJHWV
VVHFRQGDUJXPHQW7KHWKLUGDUJXPHQWVSHFLILHVWKHVWUHDPIURPZKLFK
WRUHDGFKDUDFWHUV±LQWKLVFDVHZHXVHWKHVWDQGDUGLQSXWVWUHDPVWGLQ$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\
3URWRW\SH 'HVFULSWLRQ
,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\
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
ZLOOEH"Programming Method"
,QSXWDVWULQJDQGFKHFNZKHWKHUDFKDUDFWHUDSSHDUVRUQRW,I\HVUHWXUQWKHILUVWSRVLWLRQ
,QSXWDVWULQJDQGFKHFNZKHWKHUDFKDUDFWHUDSSHDUVRUQRW,I\HVUHWXUQWKHDOODSSHDULQJ
SRVLWLRQV
,QSXWDVWULQJDQGFKHFNZKHWKHUDZRUGDSSHDUVRUQRW,I\HVUHWXUQWKHILUVWSRVLWLRQ
,QSXWWZRVWULQJVDQGVUHWXUQWKHILUVWSRVLWLRQZKHUHVDSSHDUVLQV
,QSXWWZRVWULQJVVDQGSRVLWLRQ7KHQLQVHUWVWRVIURPWKLVSRVLWLRQ
,QSXWDVWULQJDQGWZRLQWHJHUQXPEHUVQDPHGQDQGSRVLWLRQ7KHQGHOHWHQFKDUDFWHUV
IURPSRVLWLRQRILQSXWVWULQJ
5HIHUHQFH