1 CSE1301 Computer Programming: Lecture 19 Character Strings.

Slides:



Advertisements
Similar presentations
Introduction to C Programming
Advertisements

C Characters & Strings Character Review Character Handling Library Initialization String Conversion Functions String Handling Library Standard Input/Output.
1 Chapter 10 Strings and Pointers. 2 Introduction  String Constant  Example: printf(“Hello”); “Hello” : a string constant oA string constant is a series.
Lecture 09 Strings, IDEs. METU Dept. of Computer Eng. Summer 2002 Ceng230 - Section 01 Introduction To C Programming by Ahmet Sacan Mon July 29, 2002.
Lecture 9. Lecture 9: Outline Strings [Kochan, chap. 10] –Character Arrays/ Character Strings –Initializing Character Strings. The null string. –Escape.
Lecture 20 Arrays and Strings
What is a pointer? First of all, it is a variable, just like other variables you studied So it has type, storage etc. Difference: it can only store the.
 2000 Prentice Hall, Inc. All rights reserved Fundamentals of Strings and Characters String declarations –Declare as a character array or a variable.
ECE Application Programming Instructor: Dr. Michael Geiger Spring 2012 Lecture 31: PE5.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 122 – Data Structures Characters and Strings.
1 CSE1303 Part A Data Structures and Algorithms Semester 2, 2006 Lecture A1 – Welcome & Revision.
1 Introduction to Computing: Lecture 16 Character Strings Dr. Bekir KARLIK Yasar University Department of Computer Engineering
Searching and Sorting an Array 4 Searching and sorting are two fundamental algorithms often implemented with arrays –Search an array to determine the location.
1 Introduction to Computing Lecture 11 Character Strings Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical&Electronics Engineering
 2000 Prentice Hall, Inc. All rights reserved. Chapter 8 - Characters and Strings Outline 8.1Introduction 8.2Fundamentals of Strings and Characters 8.3Character.
Chapter 10.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Fundamentals of Strings and Characters Characters.
1 CSE1301 Computer Programming Lecture 16 Pointers.
N-1 University of Washington Computer Programming I Lecture 19: Strings © 2000 UW CSE.
Introduction to Computers and Programming Class 22 Character Arrays (Strings) Professor Avi Rosenfeld.
To remind us We finished the last day by introducing If statements Their structure was:::::::::
1 CSE1301 Computer Programming Lecture 16 Pointers.
Computer Science 210 Computer Organization Strings in C.
C Programming Day 2 based upon Practical C Programming by Steve Oualline CS550 Operating Systems.
Strings in C. Strings are Character Arrays Strings in C are simply arrays of characters. – Example:char s [10]; This is a ten (10) element array that.
1 Chapter 10 Characters, Strings, and the string class.
Programming Languages -1 (Introduction to C) strings Instructor: M.Fatih AMASYALI
Chapter 9 Character Strings 9.1 Character String Constants A character string constant is a sequence of characters enclosed in double quotation mark. Examples.
“In mathematics and computer programming, Index notation is used to specify the elements of an array of numbers”
Chapter 10. Characters, Strings and the string class Csc 125 Introduction to C++ Fall 2005.
1 CSE1301 Computer Programming Lecture 12 Functions (Part 1)
APS105 Strings. C String storage We have used strings in printf format strings –Ex: printf(“Hello world\n”); “Hello world\n” is a string (of characters)
 2008 Pearson Education, Inc. All rights reserved Pointers and Pointer-Based Strings.
Lecture 22: Reviews for Exam 2. Functions Arrays Pointers Strings C Files.
Arrays II (Strings). Data types in C Integer : int i; Double: double x; Float: float y; Character: char ch; char cha[10], chb[]={‘h’,’e’,’l’,’l’,’o’};
1 Data Structures and Algorithms Programs. Different problems. Operations. Size of data. Resources available.
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI C-Style Strings Strings and String Functions Dale Roberts, Lecturer.
Lecturer: Omid Jafarinezhad Sharif University of Technology Department of Computer Engineering 1 Fundamental of Programming (C) Lecture 6 Array and String.
1 CSE1301 Computer Programming Lecture 13 Functions (Part 1)
Representing Strings and String I/O. Introduction A string is a sequence of characters and is treated as a single data item. A string constant, also termed.
CSC141- Introduction to Computer programming Teacher: AHMED MUMTAZ MUSTEHSAN Lecture – 21 Thanks for Lecture Slides:
Strings Programming Applications. Strings in C C stores a string in a block of memory. The string is terminated by the \0 character:
Computer Organization and Design Pointers, Arrays and Strings in C Montek Singh Sep 18, 2015 Lab 5 supplement.
Arrays and Strings Lecture 30. Summary of Previous Lecture In the previous lecture we have covered  Functions Prototypes Variable Scope  Pointers Introduction.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 10 Characters, Strings, and the string class.
13. Strings. String Literals String literals are enclosed in double quotes: "Put a disk in drive A, then press any key to continue\n“ A string literal.
Chapter 8 Characters and Strings. Objectives In this chapter, you will learn: –To be able to use the functions of the character handling library ( ctype).
Pointers and Arrays An array's name is a constant whose value is the address of the array's first element. For this reason, the value of an array's name.
CMSC 104, Version 8/061L25Strings.ppt Strings Topics String Libraries String Operations Sample Program Reading Sections
Principles of Programming Chapter 8: Character & String  In this chapter, you’ll learn about;  Fundamentals of Strings and Characters  The difference.
1 Pointers: Parameter Passing and Return. 2 Passing Pointers to a Function Pointers are often passed to a function as arguments  Allows data items within.
19-Feb-02 Sudeshna Sarkar, CSE, IIT Kharagpur1 Arrays, Pointers, Strings Lecture 18 19/2/2002.
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI 230 Characters and Strings Dale Roberts, Lecturer Computer Science,
1 CSE1301 Computer Programming Lecture 12 Functions (Part 1)
Strings. String Literals String literals are enclosed in double quotes: "Put a disk in drive A, then press any key to continue\n“ A string literal may.
ECE 103 Engineering Programming Chapter 29 C Strings, Part 2 Herbert G. Mayer, PSU CS Status 7/30/2014 Initial content copied verbatim from ECE 103 material.
13. Strings. String Literals String literals are enclosed in double quotes: "Put a disk in drive A, then press any key to continue\n“ A string literal.
Principles of Programming - NI Chapter 10: Character & String : In this chapter, you’ll learn about; Fundamentals of Strings and Characters The difference.
Computer Organization and Design Pointers, Arrays and Strings in C
Lecture 8 String 1. Concept of strings String and pointers
Programming Languages -1 (Introduction to C) strings
CSE 303 Lecture 14 Strings in C
Arrays in C.
CS111 Computer Programming
CSI 121 Structured Programming Language Lecture 21 Character Strings
INC 161 , CPE 100 Computer Programming
CSI 121 Structured Programming Language Lecture 13 Functions (Part 1)
Lecture 11 Strings.
Beginning C for Engineers
Chapter 8 Character Arrays and Strings
Presentation transcript:

1 CSE1301 Computer Programming: Lecture 19 Character Strings

2 Topics Representation Declaration Index of a char in a string String operations Common mistakes

3 Representation Recall: Main memory –contiguous array of cells –each cell has an address 0x1FFF0x20000x20010x20020x1FFE etc

4 ch Representation (cont) Recall: Variable declaration –sets aside a “box” to contain a value Example: char ch; ch = ‘B’; 0x1FFF0x20000x20010x20020x1FFE etc ‘B’

5 Representation (cont) Example: char name[5]; Specifies number of cells in the array String declaration –sets aside an array of cells –each cell contains a char –address of first cell in the array

6 Representation (cont) String declaration –sets aside an array of cells –each cell contains a char –address of first cell in the array Example: char name[5]; 0x2000 0x2004 name is 0x2000

7 Character Arrays vs Character Strings A character string is a char array A character string must have the terminating character ( ’\0’ ) The terminating character allows scanf() and printf() to handle character strings

8 Character Strings Declaration 1: char name[5]; Declaration 2: #define MAXLENGTH 5 char name[MAXLENGTH]; 0x2000 0x2004 name is 0x2000

9 String Input/Output #include #define MAXLENGTH 15 int main() { char string1[MAXLENGTH]; char string2[MAXLENGTH]; scanf("%s %s", string1, string2); printf("%s %s\n", string1, string2); return 0; } No ampersand (&)!

10 Character String Declaration Declaration 1: char name[5] = “Ann”; Ann\0 Terminating Character: Marks the end of string Special char: ’\0’ aka NUL (single L) 0x2000 0x2004 name is 0x2000

11 Character String Declaration (cont) Declaration 1: char name[5] = “Ann”; Can store at most 4 letters, because of `\0’ Ann\0 0x2000 0x2004 name is 0x2000

12 Character String Declaration (cont) Declaration 2: char name[] = “Ann”; Takes up an extra cell for ‘\0’ Ann\0 0x2000 0x2003 name is 0x2000

13 Character String Declaration (cont) Declaration 3: char *name = “Ann”; Result is “undefined” if you try to modify this string Ann\0 0x3000 0x3003 0x3000 name

14 Character String Declaration (cont) Declaration 4: char name[]; String with arbitrary length? No! Will cause an error

15 A Char in a String The size of a character string is fixed Character at position index: –string[index] –first character has index 0

16 char name[8] = “John”; int i = 2; printf(“Char at index %d is %c.\n”, i, name[i]); A Char in a String (cont) output: Char at index 2 is h. index 0index 4 John\0 0x39950x399C name is 0x3995

17 A Char in a String (cont) index 2 John\0 0x39950x399C name is 0x3995 char name[8] = “John”; name[2] = ‘X’; printf(“Name: %s\n”, name); X

18 JoXn\0 0x39950x399C name is 0x3995 output: Name: JoXn index 2 char name[8] = “John”; name[2] = ‘X’; printf(“Name: %s\n”, name); A Char in a String (cont)

19 String Operations #include Operations: –Assignment: strcpy() –Concatenation: strcat() –Comparison: strcmp() –Length: strlen()

20 #include #define MAXLENGTH 100 int main() { char string1[MAXLENGTH]; char string2[MAXLENGTH]; strcpy(string1, “Hello World!”); strcpy(string2, string1); return 0; } String Operation: Assignment string1: string2:

21 String Operation: Assignment (cont) #include #define MAXLENGTH 100 int main() { char string1[MAXLENGTH]; char string2[MAXLENGTH]; strcpy(string1, “Hello World!”); strcpy(string2, string1); return 0; } string1: “Hello World!” string2:

22 String Operation: Assignment (cont) #include #define MAXLENGTH 100 int main() { char string1[MAXLENGTH]; char string2[MAXLENGTH]; strcpy(string1, “Hello World!”); strcpy(string2, string1); return 0; } string1: “Hello World!” string2: “Hello World!”

23 char name1[5] = “Ann”; char name2[5] = “Dave”; name2 = name1; Common Mistake 1: Incompatible types Example: Error: “LValue required...”

24 Common Mistake 2: Not enough space Ann\0 0x2000 0x2003 char name[] = “Ann”; strcpy(name, “David”); name is 0x2000

25 Common Mistake 2: Not enough space David\0 0x2003 char name[] = “Ann”; strcpy(name, “David”); 0x2000 name is 0x2000

26 char *name1 = “Ann”; char *name2 = “Dave”; name2 = name1; Caution 1: Pointer Assignment Example:

27 Caution 1: Pointer Assignment Dave\0 0x39900x3994 Ann\0 0x20000x2003 0x2000 name1 0x3990 name2 char *name1 = “Ann”; char *name2 = “Dave”;

28 Caution 1: Pointer Assignment Dave\0 0x39900x3994 Ann\0 0x20000x2003 0x2000 name1 0x2000 name2 name2 = name1;

29 Example: strassign.c #include #define MAXLENGTH 5 int main() { char name1[MAXLENGTH] = “Ann”; char name2[] = “Ann”; char *name3 = “John”; char name4[MAXLENGTH]; printf(“\nBEFORE\nname1=%s, name2=%s, name3=%s”, name1, name2, name3); strcpy(name1,”Fred”); strcpy(name2,”Fred”); strcpy(name4,name1); name3 = name2; printf(“\nAFTER\nname1=%s, name2=%s, name3=%s, name4=%s”, name1, name2, name3, name4); strcpy(name1,”Jack”); strcpy(name2,”Jim”); printf(“\nLAST\nname1=%s, name2=%s, name3=%s, name4=%s”, name1, name2, name3, name4); return 0; }

30 String Operation: Concatenation char string1[MAXLENGTH]; char string2[MAXLENGTH]; strcpy(string1, “Goodbye”); strcpy(string2, “, Cruel ”); strcat(string1, string2); strcat(string1, “World!”); string1: “Goodbye” string2: “, Cruel “

31 char string1[MAXLENGTH]; char string2[MAXLENGTH]; strcpy(string1, “Goodbye”); strcpy(string2, “, Cruel ”); strcat(string1, string2); strcat(string1, “World!”); string1: “Goodbye, Cruel ” string2: “, Cruel ” String Operation: Concatenation (cont)

32 string1: “Goodbye, Cruel, Cruel ” string2: “, Cruel ” String Operation: Concatenation (cont) char string1[MAXLENGTH]; char string2[MAXLENGTH]; strcpy(string1, “Goodbye”); strcpy(string2, “, Cruel ”); strcat(string1, string2); strcat(string1, “World!”);

33 string1: “Goodbye, Cruel, Cruel World!” string2: “, Cruel ” String Operation: Concatenation (cont) char string1[MAXLENGTH]; char string2[MAXLENGTH]; strcpy(string1, “Goodbye”); strcpy(string2, “, Cruel ”); strcat(string1, string2); strcat(string1, “World!”);

34 Common Mistake: char name[5]; strcpy(name, “Ann”); strcat(name, “ Smith”); Not enough space Ann\0 0x2000 0x2004 name is 0x2000

35 Common Mistake: char name[5]; strcpy(name, “Ann”); strcat(name, “ Smith”); Not enough space AnnSmit 0x2000 0x2004 h\0 name is 0x2000

36 strcpy(string1, “Apple”); strcpy(string2, “Wax”); if (strcmp(string1, string2) < 0) { printf(“%s %s\n”, string1, string2); } else { printf(“%s %s\n”, string2, string1); } String Operation: Comparison Returns: negative if string1 < string2 zero if string1 == string2 positive if string1 > string2

37 strcpy(string1, “Apple”); strcpy(string2, “Wax”); if (strcmp(string1, string2) < 0) { printf(“%s %s\n”, string1, string2); } else { printf(“%s %s\n”, string2, string1); } String Operation: Comparison (cont) output: Apple Wax

38 strcpy(string1, “Apple”); strcpy(string2, “Wax”); if (string1 < string2) { printf(“%s %s\n”, string1, string2); } else { printf(“%s %s\n”, string2, string1); } Common Mistake: Wrong Comparison

39 char string1[100]; strcpy(string1, “Apple”); printf(“%d\n”, strlen(string1)); output: 5 Number of char-s before the `\0’ String Operation: Length

40 Common Mistake: char name[5]; strcpy(name, “David”); Not enough space Don’t forget the ‘\0’ David\0 0x39900x3994 name is 0x3990

41 Character Strings as Parameters Strings as formal parameters are declared as char* or char[] –Examples: void Greet ( char* name ) void Greet ( char name[] ) They point to the first element of the string (array of chars) Changes to the string inside the function affect the actual string

42 Example: hello3.c #include #define NAMELEN 50 /* Print a simple greeting to the user */ void Greet ( char * name ) { strcat(name, "! How are ya?"); } int main() { char user[NAMELEN]; printf("Who are you? "); scanf("%s", user); Greet(user); printf("%s\n", user); return 0; } user Jake\0

43 int main() { char user[NAMELEN]; printf("Who are you? "); scanf("%s", user); Greet(user); printf("%s\n", user); return 0; } #include #define NAMELEN 50 /* Print a simple greeting to the user */ void Greet ( char * name ) { strcat(name, "! How are ya?"); } Example: hello3.c (cont) name user Jake\0

44 int main() { char user[NAMELEN]; printf("Who are you? "); scanf("%s", user); Greet(user); printf("%s\n", user); return 0; } #include #define NAMELEN 50 /* Print a simple greeting to the user */ void Greet ( char * name ) { strcat(name, "! How are ya?"); } Example: hello3.c (cont) user Jake! How are ya?\0 name

45 int main() { char user[NAMELEN]; printf("Who are you? "); scanf("%s", user); Greet(user); printf("%s\n", user); return 0; } Example: hello3.c (cont) #include #define NAMELEN 50 /* Print a simple greeting to the user */ void Greet ( char * name ) { strcat(name, "! How are ya?"); } user Jake! How are ya?\0

46 int main() { char user[NAMELEN]; printf("Who are you? "); scanf("%s", user); Greet(user); printf("%s\n", user); return 0; } More of scanf demystified No ampersand (&) in scanf with strings!

47 Summary A string is a contiguous array of chars The string identifier is the address of the first char in the string Individual chars are accessed using the str[index] notation There are C library functions for copying, concatenating and comparing strings

48 Reading King – Chapter 13 (except Section 13.6) Deitel and Deitel – Chapter 8 (8.1 – 8.7)