Download presentation
Presentation is loading. Please wait.
Published byEverett Riley Modified over 9 years ago
1
CHAPTER 4: The Basic of C CSEB113 PRINCIPLES of PROGRAMMING by Badariah Solemon 1BS (May 2013)
2
Topics 1.C Tokens – Reserved words, identifiers, string literals, operators, punctuators 2.Basic Data Types – int, float, double, char 3.Variables 4.Constants 5.Reading Data from the Keyboard – Using scanf() function, placeholders, address operator & 6.Arithmetic Operators and Expressions – Types of operators, operator precedence, associativity rules 7.Single Character Data – getchar(), putchar(), fflush(stdin) functions 2BS (May 2013)
3
C TOKENS Topic 1 BS (May 2013)3
4
Tokens & Types of Tokens Token – the basic element on a C program recognized by the compiler BS (May 2013)4 /* Example Case: Apples Author: Mdm Badariah Solemon */ #include int main() { int Qty; double Cost=0.0, Total=0.0; printf ("Enter quantity of apples purchased (in Kg):"); scanf("%d", &Qty); printf ("Enter the cost per Kg of apples (in RM per Kg):"); scanf("%lf",&Cost); Total = Cost * Qty; printf("\nTotal cost of apples = %.2f\n",Total); return 0; } /* Example Case: Apples Author: Mdm Badariah Solemon */ #include int main() { int Qty; double Cost=0.0, Total=0.0; printf ("Enter quantity of apples purchased (in Kg):"); scanf("%d", &Qty); printf ("Enter the cost per Kg of apples (in RM per Kg):"); scanf("%lf",&Cost); Total = Cost * Qty; printf("\nTotal cost of apples = %.2f\n",Total); return 0; } identifiers string literals reserved words punctuation operator
5
1. Reserved Words Keywords that identify language entities such as statements, data types, language attributes, etc. Have special meaning to the compiler - MUST NOT be used as identifiers in our program. Must be typed in lowercase. Ex: auto, double, else, void, int BS (May 2013)5
6
Task: Identify the Keywords Data Type-relatedFlow of Control-relatedMiscellaneous int double float if else while enum BS (May 2013)6 *Complete this table
7
2. Identifiers Words used to represent and reference certain program entities (variables, constant, function names, etc). Also known as programmer-defined words. Example: BS (May 2013)7 int myName; myName is program variable. int myName; myName is program variable. void calculateTotal(int value); calculateTotal is a function name. void calculateTotal(int value); calculateTotal is a function name. #define TAXRATE 26 TAXRATE is a constant. #define TAXRATE 26 TAXRATE is a constant.
8
Identifiers: Rules BS (May 2013)8 RulesExample Can contain a mix of characters and numbers. However it cannot start with a number H2o 2Ho First character must be a letter or underscore Number1; _area Can be of mixed cases including underscore character XsquAre my_num Cannot contain any arithmetic operators R*S+T … or any other punctuation marks… #@%!! Cannot be a C keyword/reserved word struct; printf; Cannot contain a space My height … identifiers are case sensitive Tax TaX TAX are different
9
Identifiers: Naming Styles Avoid excessively short and cryptic names such as x, or wt. Use reasonably descriptive name such as student_name and StudentID. Use userscores or capital letters to separate words in identifiers that consist of two or more words. – Example: StudentName, student_name, or studentName BS (May 2013)9
10
3. String Literal A sequence of any number of characters surrounded by double quotation marks “ ”. Example: Example of usage in C program: Produces output: BS (May 2013)10 “This is a string constant.” “Hello \”John”\.” “This is a string constant.” “Hello \”John”\.” printf(“My name is David Beckham.\n”); My name is David Beckham.
11
4. Operators Tokens that result in some kind of computation or action when applied to variables or other elements in an expression. Example of operators: * + = - / Usage example: result = total1 + total2; BS (May 2013)11
12
5. Punctuators Symbols used to separate different parts of the C program. These punctuators include: [ ] ( ) { }, ; “: * # Usage example: – To be discussed when we come to the proper language feature in the coming chapters. BS (May 2013)12 main() { printf(“Testing.”); } main() { printf(“Testing.”); }
13
Test Your Skill 1.Valid/invalid – variables or constant BS (May 2013)13 Variables/ Constant Valid/ Invalid? Variable/ Constant Valid/ Invalid? CO2const _prsFormula #1 2ndDayLast.Name First_nameaccount# NetPRIceengine 1 my namemain indexMain m*ceeFirst+Last mx_2ndcoveragetypedef
14
BASIC DATA TYPES Topic 2 BS (May 2013)14
15
Data Types Are used to define a variable before its use. The definition of a variable will assign storage for the variable and define the type of data that will be held in memory location. Basic data types in C: 1)int 2)float 3)double 4)char BS (May 2013)15
16
Basic Data Types int Whole numbers, positive and negative Ex: BS (May 2013)16 double To declare floating point variable of higher precision or higher range of numbers - exponential numbers, positive and negative Ex: float Fractional parts, positive and negative Ex: char* Single character: 1.Numeric digits: 0 - 9 2.Lowercase/uppercase letters: a - z and A - Z 3.White space 4.Special characters:,. ; ? “ / ( ) [ ] { } * & % ^ Ex: double bigvalue = 12E-3; //equals to 12x10 -3 char initial = ‘B’; int number = 12; int sum = -3678; float short = 0.000983; float income = 1234567890.12;
17
VARIABLES Topic 3 BS (May 2013)17
18
What are Variables? Are memory locations within the computer which allows pieces of data to be stored.memory locations The word variable comes from the word vary, which means that whatever you place within a variable can be changed. A variable can be viewed as a container used to store things (numbers, character, string etc ) Types of operations: 1.Declaring variables names 2.Assigning variable values 3.Manipulating variable values – ex: display on the screen BS (May 2013)18
19
Computer – Main Memory BS (May 2013)19 Hardware Is where anything that the computer is working with is kept. Memory may be conceptually viewed as an ordered sequence of storage location called memory cells. Information is stored in memory in bits A memory cell is a group of bits called a byte Each memory cell has a unique address Is where anything that the computer is working with is kept. Memory may be conceptually viewed as an ordered sequence of storage location called memory cells. Information is stored in memory in bits A memory cell is a group of bits called a byte Each memory cell has a unique address 10001100 A9 10110010 A8 01110111 A7 11010000 A6 10010111 A5 00010110 A4 11010110 A3 10010101 A2 10010110 A1 01111110 B9 10110111 B8 11011100 B7 10010000 B6 00001010 B5 10010001 B4 10101110 B3 01110110 B2 10000110 B1 Ref: Tan and D’Orazio, C Programming for Engineering & Computer Science, New York: McGraw-Hill
20
Computer – CPU BS (May 2013)20 Hardware Does most of the work in executing a program The CPU inside a PC is usually the microprocessor Three main parts: 1. Control Unit Fetch instructions from main memory and put them in the instruction register 2. ALU (Arithmetic Logic Unit) Execute arithmetic operations 3. Registers Temporarily store instructions or data fetched from memory Does most of the work in executing a program The CPU inside a PC is usually the microprocessor Three main parts: 1. Control Unit Fetch instructions from main memory and put them in the instruction register 2. ALU (Arithmetic Logic Unit) Execute arithmetic operations 3. Registers Temporarily store instructions or data fetched from memory
21
Declaring Variables A variable is declared by specifying the DATA TYPE of the variable name Ex: Several variables of the same data type may be declared in the same statement. Ex: BS (May 2013)21 int Age; Variable NameData Type int Age, Weight; Variable Names Data Type Comma to separate variables
22
Assigning Values to Variable A variable is assigned with a value using an assignment operator =. Ex: During program execution, may be conceptually viewed as: BS (May 2013)22 Variable NameData TypeData ValueMemory Cell Address* Ageint17ffff8 Weightint60ffff2 Age = 17; 17 is assigned to Age Weight = 60; 60 is assigned to Weight
23
Assigning Values to Variables During Declaration Variables may be assigned with values even during the variables declaration. Ex: BS (May 2013)23 int Age = 17, Weight = 60; Data Type Comma to separate variables int Age = 17; Variable Name
24
Printing Variable Values Use the printf() function to display the value of a variable on the computer screen. Syntax: FormatString is a combination of characters, placeholders and escape sequence. PrintList is any constants, variables, expressions, and functions calls separated by commas. Example: BS (May 2013)24 printf( FormatString, PrintList ); int age = 80; float cgpa = 4.00; printf(“Your age: %d\n”, age); printf(“CGPA: %f\n”, cgpa); printf(“My CGPA: %.2f\n”, cgpa); int age = 80; float cgpa = 4.00; printf(“Your age: %d\n”, age); printf(“CGPA: %f\n”, cgpa); printf(“My CGPA: %.2f\n”, cgpa); placeholder Your age: 80 CGPA: 4.000000 My CGPA: 4.00 Your age: 80 CGPA: 4.000000 My CGPA: 4.00
25
Placeholders in printf() Function Placeholders (or also known as format specifiers) always begin with the symbol % Are used to format and display the variable/constant values on the screen Common placeholders: BS (May 2013)25 PlaceholderData Type %dint %fdouble/float %cchar %sString Refer Table 12.2, pg 647 (Hanly & Koffman)
26
More About Printing Variable Values Recall this syntax: – FormatString can have multiple placeholders if the Printlist in printf() function has several variables. Example: BS (May 2013)26 #include main() { int age = 80; float cgpa = 3.512, weight = 60.4778; printf(“Age: %d and CGPA: %.2f\n”, age, cgpa); printf(“CGPA: %.2f and Age: %d\n”, cgpa, age); printf(“CGPA: %.1f\tWeight2: %.2f\n”, cgpa, weight); printf(“Weight3: %.3f\t”, weight); printf(“Weight4: %.4f\n”, weight); } #include main() { int age = 80; float cgpa = 3.512, weight = 60.4778; printf(“Age: %d and CGPA: %.2f\n”, age, cgpa); printf(“CGPA: %.2f and Age: %d\n”, cgpa, age); printf(“CGPA: %.1f\tWeight2: %.2f\n”, cgpa, weight); printf(“Weight3: %.3f\t”, weight); printf(“Weight4: %.4f\n”, weight); } printf( FormatString, PrintList );
27
Test Your Skill Do hand-out exercise – declare & assign variables What happen if you try to print an int with %f or a float with %d ? What is the output for the following program? BS (May 2013)27 #include main() { int yearS = 4; float cgpa = 3.88, gpa = 4.00; double printf(“How long it takes to complete ur study?\n%d\n”,yearS); printf(“GPA\t\tCGPA\n”); printf(“%.2f\t\t%.2f”,gpa, cgpa); printf(“Excellent!\n”); printf(“Now, test your skill\n”); printf(“CGPA in 1 decimal point = %.1f\n”, cgpa); printf(“CGPA = %f\n”, cgpa) } #include main() { int yearS = 4; float cgpa = 3.88, gpa = 4.00; double printf(“How long it takes to complete ur study?\n%d\n”,yearS); printf(“GPA\t\tCGPA\n”); printf(“%.2f\t\t%.2f”,gpa, cgpa); printf(“Excellent!\n”); printf(“Now, test your skill\n”); printf(“CGPA in 1 decimal point = %.1f\n”, cgpa); printf(“CGPA = %f\n”, cgpa) }
28
CONSTANTS Topic 4 BS (May 2013)28
29
Constants Entities that appear in the program code as fixed values. Types of operations: 1.Declaring and assigning constant values 2.Operating constant values —Almost similar treatment like variables but CANNOT change the values after declaration! BS (May 2013)29
30
Declaring Constants 1.As constant macro – created using a preprocessor directives using define keyword – Ex: 2.Within a function using the const keyword. – Ex: BS (May 2013)30 #include #define PI 3.14159 #define DAYS_IN_YEARS 365 main() { … #include #define PI 3.14159 #define DAYS_IN_YEARS 365 main() { … #include main() { const double KMS_PER_MILES = 1.609 … } #include main() { const double KMS_PER_MILES = 1.609 … } DATA TYPE?
31
Types of Constants Integer Constant Positive or negative whole numbers Ex: BS (May 2013)31 Character Constant A character enclosed in a single quotation mark Ex: Floating-point Constant Positive or negative decimal numbers Ex: Enumeration Values are given as a list Ex: #define LETTER ‘n’ const char NUMBER = ‘1’; enum Language { English Arabic Mandarin } #define MAX 10 const int MIN = -90; #define PI 3.412 const float PI = 3.412; #define VAL 0.5877e2 const double VAL = 0.5877e2; //stands for 0.5877 x 102
32
Printing Constant Values Similar to printing variable values – What is the output of the program? BS (May 2013)32 #include #define DAYS 365 #define VAL 0.5877 void main(void) { const double PI = 3.412; printf(“pi = %.3f\n”, PI); printf(“In a year, there are %d days\n”, DAYS); printf(“Value = %.4f\n”, VAL); } #include #define DAYS 365 #define VAL 0.5877 void main(void) { const double PI = 3.412; printf(“pi = %.3f\n”, PI); printf(“In a year, there are %d days\n”, DAYS); printf(“Value = %.4f\n”, VAL); }
33
READING DATA FROM THE KEYBOARD Topic 6 BS (May 2013)33
34
Using scanf() Function To read data from the standard input device (usually keyboard) and store it in a variable. The general format is pretty much the same as printf() function. Syntax: InputList one or more variables addresses, each corresponding to a placeholder in the FormatString One placeholder for each variable in InputList. The two or more variables in InputList must be separated by commas. Each element of InputList must be an address of a memory cell(using prefix & address operator) BS (May 2013)34 scanf( FormatString, InputList );
35
Placeholders in scanf() Function Are used to format and display the variable/constant values keyed-in by the user Common placeholders in scanf() function are very similar to placeholders in printf() function: BS (May 2013)35 PlaceholderData Type %dint %ffloat %lfdouble %cchar %sString Refer Table 12.2, pg 647 (Hanly & Koffman)
36
Example BS (May 2013)36 Address operator int Age; double income; printf(“Enter your age and income“); scanf(“%d %lf”, &Age, &income); printf(“Your age: %d\n”, Age); printf(“Your income: %f\n”, income); int Age; double income; printf(“Enter your age and income“); scanf(“%d %lf”, &Age, &income); printf(“Your age: %d\n”, Age); printf(“Your income: %f\n”, income); int Age; float income; printf(“Enter your age: “); scanf(“%d”, &Age); printf(“Enter income: “); scanf(“%f”, &income); printf(“Your age is: %d\nIncome: %.2f”, Age, income); int Age; float income; printf(“Enter your age: “); scanf(“%d”, &Age); printf(“Enter income: “); scanf(“%f”, &income); printf(“Your age is: %d\nIncome: %.2f”, Age, income); If you want the user to enter more than one value, you serialise the inputs.
37
Test Your Skill 1)Write a simple C program that reads two integer values and print them on the screen in one line separated by one vertical tab. Follow this sample output: 2)Write a simple C program that reads 3 real numbers and print them on the screen in reverse order. Follow this sample output : BS (May 2013)37 Enter first integer: 80 Enter second integer: 99 8099 Enter first integer: 80 Enter second integer: 99 8099 Enter three real numbers: 5.6 7.8 9.3 In reverse order: 9.3 7.8 5.6 Enter three real numbers: 5.6 7.8 9.3 In reverse order: 9.3 7.8 5.6
38
ARITHMETIC OPERATORS AND EXPRESSIONS Topic 5 BS (May 2013)38
39
Arithmetic Expressions A syntactically correct and meaningful combination of operators and operands is known as an Expression. ‘ = ’ is the basic assignment operator Syntax: Example: BS (May 2013)39 cityTax = CITYTAXRATE * grossIncome; Variable = ArithmeticExpression; assignment operator arithmetic operator operands Expression: month = 12; 12 is assigned to variable month
40
Arithmetic Operators There are 2 types of arithmetic operators in C: 1.Unary operators are operators that require only one operand. Example: 2.Binary operators are operators that require two operands. Example: Note that we CANNOT write arithmetic expressions like the following: BS (May 2013)40 operand second = -first; prs = -34; second = -first; prs = -34; third = first / second; sum = 30 + 76; third = first / second; sum = 30 + 76; operands first / second = third; 30 + 76 = sum; first / second = third; 30 + 76 = sum; X X
41
1. Unary Operators Initial value of a is 10 and b is 5 BS (May 2013)41 prefix (before a variable) postfix (after a variable)
42
Prefix/Postfix Increment a++ or ++a is equals to a = a + 1 but they work differently BS (May 2013)42 Prefix Increment (++a)Postfix Increment (a++) 1.Add the value of a by 1 2.Return the value a 1.Return the value a 2.Add the value of a by 1 Example: int a=9; printf(“%d\n”, a); printf(“%d\n”, ++a); printf(“%d”, a); Output: 9 10 Example: int a=9; printf(“%d\n”, a); printf(“%d\n”, a++); printf(“%d”, a); Output: 9 10
43
Prefix/Postfix Decrement Similarly, --a or a-- is equals to a = a - 1 but they work differently BS (May 2013)43 Prefix Decrement ( --a )Postfix Decrement ( a-- ) 1.Subtract the value of a by 1 2.Return the value a 1.Return the value a 2.Subtract the value of a by 1 Example: int a=9 printf(“%d\n”, a); printf(“%d\n”, --a); printf(“%d”, a); Output: 9 8 Example: int a=9; printf(“%d\n”, a); printf(“%d\n”, a--); printf(“%d”, a); Output: 9 8
44
2. Binary Operators If all operands in an arithmetic expression are of type double/float, the result is also of type double/float except for modulus operator. If all operands in an arithmetic expression are of type int, the result is also of type int. Value of a is 9 BS (May 2013)44
45
Modulus Operator (%) You could only use modulus (%) operation on integer variables/integer division Modulus will result in the remainder of an operation Example: – 7 % 2 is 1 – But 2 % 7 is 2. Any idea why? BS (May 2013)45 72 3 6 1 - 7/2 7%2 integral remainder
46
Example A simple C program that find an average of two real numbers. BS (May 2013)46 #include void main(void) { float no1, no2, sum, avg; printf(“Enter three real numbers: “); scanf(“%f %f”, &no1, &no2); sum = no1 + no2; avg = sum / 2; printf(“Average: %.2f”, avg); } #include void main(void) { float no1, no2, sum, avg; printf(“Enter three real numbers: “); scanf(“%f %f”, &no1, &no2); sum = no1 + no2; avg = sum / 2; printf(“Average: %.2f”, avg); }
47
Test Your Skill 1)Write a program that sum up 4 integer numbers and display the computed sum. 2)Design pseudocode/flowcharts to solve the following problems and convert them into complete C programs: a)Compute and display the average of three numbers. b)Read the value of the height, width and length of a box from the user and print its volume. BS (May 2013)47
48
Compound Assignment Operator Are combinations of operators with the basic assignment operator = Initial value of a is 8: BS (May 2013)48
49
Test Your Skill What is the output of the following program? BS (May 2013)49 #include void main(void) { int first; printf("Enter a value: "); scanf("%d", &first); printf("\nNew value is: %d\n\n", first+=4); printf("\nNew value is: %d\n\n", first*=4); printf("\nNew value is: %d\n\n", first-=4); printf("\nNew value is: %d\n\n", first%=4); } #include void main(void) { int first; printf("Enter a value: "); scanf("%d", &first); printf("\nNew value is: %d\n\n", first+=4); printf("\nNew value is: %d\n\n", first*=4); printf("\nNew value is: %d\n\n", first-=4); printf("\nNew value is: %d\n\n", first%=4); }
50
Operations of Mixed or Same Types 1 BS (May 2013)50 int float int float Examples: 5 + 3 is 8 5/3 is 1 WHY? 5.2 + 3.1 is 8.3 5.0/3.0 is 1.6 5.2 + 3 is 8.2 5.0/3 is 1.6 5/3.0 is 1.6
51
Operations of Mixed or Same Types 2 BS (May 2013)51 Assigning real values to int or float variables: int m=0, n=0; float p=0.00, q=0.00; m = 5/3; p = 5/3; n = 5/3.0; q = 5/3.0; int float int float int/int int 5/3 is 1 int/float float 5/3 is 1.6 m is 1 p is 1.0 n is 1 q is 1.6
52
Type Casting You can modify the way C uses types in arithmetic operations by using cast operators. The syntax: Recall: So what can you do to ensure that the operation produces 1.6 instead of 1? To ensure that you did not loose any data from the operation, you may apply type casting as follows: BS (May 2013)52 (type) expression 5/3 result in 1 (float)5/3 5/(float)3 (float)5/(float)3 ((float)5)/((float)3) (float)5/3 5/(float)3 (float)5/(float)3 ((float)5)/((float)3)
53
Guidelines in Writing Arithmetic Expressions If it is division operation, make sure it does not involve two integer variables or constants (unless you want the fractional part to be cut off) When writing your code, a float type variable is on the left side of an assignment statement. Example: When int type variable is on the left side of an assignment statement, make sure that the statement is meant to create an integer value. BS (May 2013)53 int sum = 87; float avg; avg = sum / 4; int sum = 87; float avg; avg = sum / 4;
54
C Rules for Evaluating Expressions We must know the C rules for evaluating expression when there is multiple mix of operators in the expression. In this example, which operator should be evaluated first? The rules for evaluating expressions are: 1.Parentheses rule: all expressions in () must be evaluated separately. Nested parentheses – innermost first. Parentheses can be used to control the order of operator evaluation 2.Precedence rule: specifies which of the operators will be evaluated first. 3.Associativity rule: specifies which of the multiple occurrences of the same operators will be evaluated first. BS (May 2013)54 s = x / y + z
55
Precedence and Associativity of Operations For details, refer to Appendix C (Hanly &Koffman) L – from left to right R – from right to left BS (May 2013)55 PrecedenceOperationAssociativity Highest (evaluated first) Lowest (evaluated last) [ ] ( ) postfix ++ postfix -- prefix ++ prefix -- unary + unary - unary & unary * * / % binary + binary - = += -= *= /= %= LLRLLRLLRLLR
56
Example 1 The order: Evaluation steps ( assume initial value of s is 2, x is 9, y is 1, z = 2 ): Step 1: s = 9 / 1 + z Step 2: s = 9 + 2 Step 3: s = 11 BS (May 2013)56 s = x / y + z 1 1 3 3 2 2 The order: Evaluation steps ( assume initial value of i is 1, j is 7 ): Step 1: i += 7 - 2 Step 2: i = 6 (i += 5 i = 1 + 5) i += j – 2 1 1 2 2 Other option? Use parentheses Other option? Use parentheses
57
Example 2 Note: – The expression inside a parentheses will be evaluated first. – The associativity rule of parentheses is left to right BS (May 2013)57 The order: Evaluation steps ( assume initial value of p1 is 4.5, p2 is 9.0, t1 is 0.0, t2 is 60.0 ): Step 1: v = (9.0 – 4.5) / (t2 – t1) Step 2: v = 4.5 / (60.0 – 0.0) Step 3: v = 4.5 / 60.0 Step 4: v = 0.075 v = (p2 – p1) / (t2 – t1) 1 1 3 3 2 2 4 4
58
Test Your Skill 1 Find output of the program segment BS (May 2013)58... int i=5, c=10, x; x = +i++; printf("a) x = %d, i = %d\n", x, i); x = ++x; printf("b) x = %d, i = %d\n", x, i); x = c++ + i; printf("c) x = %d, i = %d\n", x, i); x = --c + --i; printf("d) x = %d, i = %d\n", x, i); x = i + -x; printf("e) x = %d, i = %d\n", x, i);... int i=5, c=10, x; x = +i++; printf("a) x = %d, i = %d\n", x, i); x = ++x; printf("b) x = %d, i = %d\n", x, i); x = c++ + i; printf("c) x = %d, i = %d\n", x, i); x = --c + --i; printf("d) x = %d, i = %d\n", x, i); x = i + -x; printf("e) x = %d, i = %d\n", x, i);...
59
Test Your Skill 2 Find output of the program segment BS (May 2013)59... int x, y=5,z=10, s=3, p, q, r; x = (x % 2) + (y – 3)); printf("%d\n", x); x = ++z + z * 2; printf("%d\n", x); p = y * z – s + x / z; q = y * (z – s) + x / z; r = y * z – s + x / z; printf(“%d %d %d %d\n”, p, q, r, x);... int x, y=5,z=10, s=3, p, q, r; x = (x % 2) + (y – 3)); printf("%d\n", x); x = ++z + z * 2; printf("%d\n", x); p = y * z – s + x / z; q = y * (z – s) + x / z; r = y * z – s + x / z; printf(“%d %d %d %d\n”, p, q, r, x);...
60
SINGLE CHARACTER DATA Topic 7 BS (May 2013)60
61
The Set of C Characters The characters that can be used to form words, number and expressions (depend upon the computer on which the program is run). Are grouped into 4 categories: BS (May 2013)61 Letters Uppercase A to Z Lowercase a to z White Space Blank space Horizontal tab (\t) Carriage return (r) New line (\n) Form feed (\) Digits 0 to 9 Special Characters See next page
62
C Special Characters BS (May 2013)62
63
Working with char Data Type Declaring character variables. Example: Assigning a character constant to character variables. Example: Using printf() function to print characters. Example: Using scanf() function to input characters. Example: BS (May 2013)63 char c1; char c2, c3, c4; char c1; char c2, c3, c4; c1 = ‘p’; c2 = ‘\n’; c3 = ‘#’; c1 = ‘p’; c2 = ‘\n’; c3 = ‘#’; printf(“%c\n”, c1); printf(“%c %c”, c1, c2); printf(“%c\n”, c1); printf(“%c %c”, c1, c2); scanf(“%c %c ”, &c1, c2); scanf(“%c%c”, &c3, &c4); scanf(“%c %c ”, &c1, c2); scanf(“%c%c”, &c3, &c4); Each character is enclosed in single quotes ‘ ’ No spaces in the string literal
64
Character Input Output Functions getchar() – to read a character from standard input putchar() – to write a character to standard output Example: To be discussed further in Chapter 8: Characters Array (String) BS (May 2013)64 #include main() { char myC; printf(“Please type a character: “); myC = getchar(); printf(“\nYou have typed this character: “); putchar(myC); printf(“\n”); } #include main() { char myC; printf(“Please type a character: “); myC = getchar(); printf(“\nYou have typed this character: “); putchar(myC); printf(“\n”); }
65
Input Buffer & Flushing the Buffer The getchar() function works with the input buffer to get the information typed at the keyboard. – Buffer – a portion of memory reserved for temporarily holding information that is being transferred. When getchar() function is used, it is easy to see an execution that is different than it should be. So, what you can do is to flush or empty the input buffer by using fflush (stdin); statement. Example: BS (May 2013)65 char c1, c2; printf(“Enter 2 characters:”); fflush(stdin); c1 = getchar(); c2 = getchar(); fflush(stdin); char c1, c2; printf(“Enter 2 characters:”); fflush(stdin); c1 = getchar(); c2 = getchar(); fflush(stdin); * This may not work for certain OS (e.g., LINUX)
66
Summary Basic elements (tokens) in C: reserved words, identifiers, string literals, operators, punctuators Working with variables and constants of types int, float, double, char Pre/post fix (increment and decrement)- effect the result of arithmetic expressions Reading data using scanf() function – Placeholders and address operator & The C rules when evaluating expression with multiple mix of operators in arithmetic expression: – Parentheses rule, precedence rule & associativity rule Working with single character data including getchar() and putchar() functions – empty the input buffer by using fflush (stdin); statement BS (May 2013)66
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.