Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC141- Introduction to Computer programming Teacher: AHMED MUMTAZ MUSTEHSAN Lecture – 21 Thanks for Lecture Slides:

Similar presentations


Presentation on theme: "CSC141- Introduction to Computer programming Teacher: AHMED MUMTAZ MUSTEHSAN Lecture – 21 Thanks for Lecture Slides:"— Presentation transcript:

1 CSC141- Introduction to Computer programming Teacher: AHMED MUMTAZ MUSTEHSAN Lecture – 21 Thanks for Lecture Slides: http://blekko.com/ws/fundamentals+of+characters+and+strings Principles of Programming - NI2005

2 CSC 141 Introduction to Computer Programming 2 Fundamentals of Characters and Strings In C language characters is either printable or nonprintable including lowercase letters, uppercase letters, decimal digits, special characters and escape sequences. A character is usually stored in the computer as an 8- bits (1 byte) integer. The integer value stored for a character depends on the character set used by the computer on which the program is running.

3 CSC 141 Introduction to Computer Programming 3 There are two commonly used character codes: 1. ASCII (American Standard Code for Information Interchange) 2. EBCDIC (Extended Binary Coded Decimal Interchange Code) Fundamentals of Characters and Strings

4 CSC 141 Introduction to Computer Programming 4 char num = 1 and char num = ‘1’ are not the same. char num = 1 is represented in the computer as 00000001. char num = ‘1’ on the other hand is number 49 according to the ASCII character set. Therefore, it is represented in the computer as 00110001. Difference Between an Integer Digit and a Character Digit

5 CSC 141 Introduction to Computer Programming 5 Example: ASCII character #include void main(void) { char A = 'A'; char Z = 'Z'; char a = 'a'; char z = 'z'; printf("\nASCII value for A is %d\t", A); printf("\nASCII value for Z is %d\t", Z); printf("\nASCII value for a is %d\t", a); printf("\nASCII value for z is %d\t", z); printf("\n"); printf("\n Decimal 65 in ASCII represents %c\t",65); printf("\n Decimal 90 in ASCII represents %c\t",90); printf("\n Decimal 97 in ASCII represents %c\t",97); printf("\n Decimal 122 in ASCII represents %c\t",122); }

6 CSC 141 Introduction to Computer Programming 6 Sample output ASCII value for A is 65 ASCII value for Z is 90 ASCII value for a is 97 ASCII value for z is 122 Decimal 65 in ASCII represents A Decimal 90 in ASCII represents Z Decimal 97 in ASCII represents a Decimal 122 in ASCII represents z

7 CSC 141 Introduction to Computer Programming 7 Example cont… #include void main(void) { char ch; printf("enter a character: "); scanf("%c", &ch); if (ch >= 'A' && ch <= 'Z') { printf("\ncapital letter\n"); } #include void main(void) { char ch; printf("enter a character: "); scanf("%c", &ch); if (ch >= 65 && ch <= (65+26)) { printf("\ncapital letter\n"); } Both Examples are same

8 CSC 141 Introduction to Computer Programming 8 Fundamentals of Characters and Strings A string in C is an array of characters ending with the null character (‘\0’). It is written inside a double quotation mark (“ ”) A string may be assigned (in a declaration) to either a char array or to a char pointer: char color[] = “green”; OR char *color = “green”;

9 CSC 141 Introduction to Computer Programming 9 A string can also be defined by specifying the individual characters: char name[ ] = {‘A’, ‘h’, ‘m’, ‘e’, ‘d’, ‘\0’}; A string is accessed via a pointer to the first character in the string. In memory, the characters are stored as: A h m e d \0 Fundamentals of Characters and Strings

10 CSC 141 Introduction to Computer Programming 10 For five characters string ‘Ahmed’, six characters are stored in the memory. Every string is terminated with a null character ‘\0’, which indicates the end of the string. For an array of characters to be stored as a string, the array must be large enough to store the string plus one terminating NULL character. Fundamentals of Characters and Strings

11 CSC 141 Introduction to Computer Programming 11 We can initialize string variables at compile time such as; char name[10] = “Ahmed”; The initialization will be stored in memory as : A h m e d \0 \0 \0 \0 \0 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Briefly review about strings :

12 CSC 141 Introduction to Computer Programming 12 Fundamentals of Characters and Strings If we initialize the following string: char string [4] = “milk”; The system will generate the following syntax error: error -------- array bounds overflow Therefore, we need to declare the array with (the size of the string + 1) to accommodate the null terminating character ‘\0’. char string [5] = “milk”;

13 CSC 141 Introduction to Computer Programming 13 Example: string and ‘\0’ #include /* The program that counts the number of characters in a string */ void main(void) { char string[] = "I love Pakistan"; count = 0; for (int i = 0; string[i] != '\0'; i++) count++; printf(“%s The string has %d characters including space", string, count); } output: I love Pakistan The string has 15 characters including space.

14 CSC 141 Introduction to Computer Programming 14 Functions Input scanf( ) gets( ) Functions Output printf( ) puts( ) Using scanf ( ) function with format specifier %s. no whitespace character, as it terminates the input If the string to be read has embedded spaces then use standard gets function. strings I/O:

15 CSC 141 Introduction to Computer Programming 15 Example: gets/puts and scanf/printf #include void main(void) { char string1[80]; char string2[80]; printf("Enter a sentence less than 80 characters with spaces: \n "); gets(string1); printf("\nYou have entered: "); puts(string1); printf("\n Entering a sentence less than 80 characters, with spaces: \n"); scanf("%s", string2); printf("\nYou have entered: %s\n", string2); }

16 CSC 141 Introduction to Computer Programming 16 /* Sample output */ Enter a sentence less than 80 characters with spaces: My name is Ahmed You have entered: My name is Ahmed Try to entering a sentence less than 80 characters, with spaces: Pakistan is my country You have entered: Pakistan More on gets() and puts() using pointers will be discussed in the next lecture Example cont…

17 CSC 141 Introduction to Computer Programming 17 Character Library Character library contains several function that perform useful tests of manipulating character data. Each function receives a character, represented as an int as an argument. The header file needs to be included, for using functions of the character library. These functions manipulates characters as integers (since a character is basically a 1 byte integer).

18 CSC 141 Introduction to Computer Programming 18

19 CSC 141 Introduction to Computer Programming 19 String Conversion Functions These functions convert strings of digits to integer and floating-point values. To use these functions, the general utilities library, needs to be included. Note that these functions take a constant value as their argument. This means that we can only pass a constant string to the functions. Example: atoi (“1234”); const char *hello = “9999”; atoi(hello);

20 CSC 141 Introduction to Computer Programming 20 nPtr - The pointer to the string to be converted. endptr - The pointer to which the remainder of the string will be assigned after the conversion. We can pass a NULL if the remaining string is to be ignored. base - Indicates the format (base) of the string to be converted. If 0 is given, that means the value to be converted can be in octal (base 8), decimal (base 10) or hexadecimal (base 16).

21 CSC 141 Introduction to Computer Programming 21 Example /*1. Converting a String Into an int Using atoi. */ #include void main() { char str1[ ] = "124z3yu87"; char str2[ ] = "-3.4"; char *str3 = "e24"; printf("str1: %d\n", atoi(str1)); printf("str2: %d\n", atoi(str2)); printf("str3: %d\n", atoi(str3)); } Output: str1: 124 str2: -3 str3: 0

22 CSC 141 Introduction to Computer Programming 22 Standard Input/Output Library Functions Include to use these functions.

23 CSC 141 Introduction to Computer Programming 23 String Manipulation Functions Include to use these functions.

24 CSC 141 Introduction to Computer Programming 24 String Comparison Functions Include to use these functions

25 CSC 141 Introduction to Computer Programming 25 Example int strcmp ( const char *s1, const char *s2 ); strcmp will accept two strings. It will return an integer. This integer will either be: Negative value if s1 is less than s2. Zero value if s1 and s2 are equal. Positive value if s1 is greater than s2. strcmp is case sensitive. strcmp requires the address of the character array to be accessed.

26 CSC 141 Introduction to Computer Programming 26 char *strcat ( char *dest, const char *src ); The strcat is short name for string concatenate, It means to add to the end, or append. It adds the second string to the first string. It returns a pointer to the concatenated string. Make sure that the size of dest is large enough to hold the entire contents of src and dest string. Example cont…

27 CSC 141 Introduction to Computer Programming 27 char *strcpy ( char *dest, const char *src ); strcpy is short for string copy. It copies the entire contents of src into dest. The contents of dest after strcpy will be exactly the same as src. size_t strlen ( const char *s ); strlen returns the length of a string, minus the null character ('\0'). The size_t is a data type which is an integer that cannot be negative. Example cont…

28 CSC 141 Introduction to Computer Programming 28 #include void main() { char string1[50] = “COMSATS Institute of Information Technology"; char string2[50] = “COMSATS University”; strcpy(string1,string2); printf(“string1: %s\n", string1); printf(“string2: %s\n", string2); } Output : string1: COMSATS University string2: COMSATS University Example: strcpy

29 CSC 141 Introduction to Computer Programming 29 Example: strncpy #include void main(void) { char string1[100] = “Blochistan"; char string2[50] = “Tajakistan"; strncpy(string2, string1, 5); printf(“string1: %s\n", string1); printf(“string2: %s\n", string2); } Output: string1: Blochistan string2: Blochistan

30 CSC 141 Introduction to Computer Programming 30 #include void main() { char name[20] = “MUMTAZ"; char nameoft[20]; int correct = 0; while(correct==0) { printf("Enter the name of your teacher in uppercase: "); gets(nameoft); if(strcmp(name, nameoft)==0) { printf("Correct!\n"); correct = 1; } else printf("Try again: \n"); } Example: strcmp

31 CSC 141 Introduction to Computer Programming 31 You can only exit the program by entering "EDDIE". To perform a lowercase string comparison, use stricmp instead of strcmp but be warned: stricmp is NOT an ANSI C so it won't be supported by all C compilers. Example cont…

32 CSC 141 Introduction to Computer Programming 32 /* Concatenating Strings Using strcat */ #include void main() { char string1[50] = “Ahmed "; char string2[ ] = “Mumtaz"; strcat(string1, string2); printf("string1: %s\n", string1); } Output: string1: Ahmed Mumtaz Defined the string1 array to be large enough to hold the characters of both strings. Example: strcat

33 CSC 141 Introduction to Computer Programming 33 Example: strncat /* Concatenating Strings Using strncat */ #include void main() { char string1[50] = “Ahmed "; char string2[ ] = “Mumtaz"; strncat(string1, string2, 3); printf("string1: %s\n", string1); } Output: string1: Hello Mum

34 CSC 141 Introduction to Computer Programming 34 Example: strlen #include void main(void) { char string[ ] = "I love Pakistan"; int i,count = 0; count = strlen(string); printf("%s The string has %d characters including the space“, string, count); } output: I love Pakistan The string has 15 characters including the whitespace

35 CSC 141 Introduction to Computer Programming 35 String Search Functions Include to use these functions.

36 CSC 141 Introduction to Computer Programming 36 SUMMARY Standard character-handling library of C, includes some useful functions for: Testing types of characters Converting letters to uppercase and lowercase. C does not support strings as a data type. use character arrays to represent strings. Standard output functions printf, puts Standard input functions scanf, gets String manipulation functions Copy strings, Compare string, Compute length of string, Concatenate two strings to one


Download ppt "CSC141- Introduction to Computer programming Teacher: AHMED MUMTAZ MUSTEHSAN Lecture – 21 Thanks for Lecture Slides:"

Similar presentations


Ads by Google