360 likes | 459 Views
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. Fundamentals of Characters and Strings.
E N D
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
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. CSC 141 Introduction to Computer Programming
Fundamentals of Characters and Strings • There are two commonly used character codes: • ASCII (American Standard Code for Information Interchange) • EBCDIC (Extended Binary Coded Decimal Interchange Code) CSC 141 Introduction to Computer Programming
Difference Between an Integer Digit and a Character Digit • 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. CSC 141 Introduction to Computer Programming
Example: ASCII character #include <stdio.h> 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); } CSC 141 Introduction to Computer Programming
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 CSC 141 Introduction to Computer Programming
Example cont… Both Examples are same #include <stdio.h> void main(void) { char ch; printf("enter a character: "); scanf("%c", &ch); if (ch >= 'A' && ch <= 'Z') { printf("\ncapital letter\n"); } } #include <stdio.h> void main(void) { char ch; printf("enter a character: "); scanf("%c", &ch); if (ch >= 65 && ch <= (65+26)) { printf("\ncapital letter\n"); } } CSC 141 Introduction to Computer Programming
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”; CSC 141 Introduction to Computer Programming
A h m e d \0 Fundamentals of Characters and Strings • 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: CSC 141 Introduction to Computer Programming
Fundamentals of Characters and Strings • 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. CSC 141 Introduction to Computer Programming
A h m e d \0 \0 \0 \0 \0 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Briefly review about strings : • We can initialize string variables at compile time such as; • char name[10] = “Ahmed”; • The initialization will be stored in memory as : CSC 141 Introduction to Computer Programming
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”; CSC 141 Introduction to Computer Programming
Example: string and ‘\0’ #include <stdio.h> • /* 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. CSC 141 Introduction to Computer Programming
strings I/O: 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. CSC 141 Introduction to Computer Programming
Example: gets/puts and scanf/printf #include <stdio.h> 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); } CSC 141 Introduction to Computer Programming
Example cont… /* Sample output */ • Enter a sentence less than 80 characters with spaces:My name is AhmedYou have entered: My name is AhmedTry 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 CSC 141 Introduction to Computer Programming
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 <ctype.h> 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). CSC 141 Introduction to Computer Programming
String Conversion Functions • These functions convert strings of digits to integer and floating-point values. • To use these functions, the general utilities library <stdlib.h>, 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); CSC 141 Introduction to Computer Programming
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). CSC 141 Introduction to Computer Programming
Example /*1. Converting a String Into an int Using atoi. */ #include <stdio.h> #include <stdlib.h> 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 CSC 141 Introduction to Computer Programming
Standard Input/Output Library Functions • Include <stdio.h> to use these functions. CSC 141 Introduction to Computer Programming
String Manipulation Functions • Include <string.h> to use these functions. CSC 141 Introduction to Computer Programming
String Comparison Functions • Include <string.h> to use these functions CSC 141 Introduction to Computer Programming
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. CSC 141 Introduction to Computer Programming
Example cont… 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. CSC 141 Introduction to Computer Programming
Example cont… 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_tstrlen ( 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. CSC 141 Introduction to Computer Programming
Example: strcpy #include <stdio.h> #include <string.h> 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 Universitystring2: COMSATS University CSC 141 Introduction to Computer Programming
Example: strncpy #include <stdio.h> #include <string.h> 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 CSC 141 Introduction to Computer Programming
Example: strcmp #include <stdio.h> #include <string.h> 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"); } } CSC 141 Introduction to Computer Programming
Example cont… • 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. CSC 141 Introduction to Computer Programming
Example: strcat /* Concatenating Strings Using strcat */ #include <stdio.h> #include <string.h> 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. CSC 141 Introduction to Computer Programming
Example: strncat /* Concatenating Strings Using strncat */ #include <stdio.h> #include <string.h> void main() { char string1[50] = “Ahmed "; char string2[ ] = “Mumtaz"; strncat(string1, string2, 3); printf("string1: %s\n", string1); } Output: string1: Hello Mum CSC 141 Introduction to Computer Programming
Example: strlen #include <stdio.h> #include <string.h> 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 CSC 141 Introduction to Computer Programming
String Search Functions • Include <string.h> to use these functions. CSC 141 Introduction to Computer Programming
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 CSC 141 Introduction to Computer Programming