13 Es 26 - Strings

  • Uploaded by: Wilmarc
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 13 Es 26 - Strings as PDF for free.

More details

  • Words: 876
  • Pages: 21
Strings 13

Introduction to Programming

Strings • In C, strings like “hello” are just arrays of characters • A string is terminated by the sentinel string character ' \0 ', or null character which may NOT be the last element in the array • Null character: backslash-zero • This is the only character whose bits are all zeroes

Introduction to Programming

Implicit Strings • Created by enclosing some text within double quotation marks. • Compiler creates a hidden char array to represent the characters and ensures that a '\0' is placed after the last character in the string. • ex.: printf(“Welcome\n”); W

e

l

c

o

m

e

Introduction to Programming

\n \0

Implicit Strings • Why call it hidden array? It has no name to which the program can refer to. • Why implicit? The program does not have any control over the size or number of elements in the array, which was implicitly sized by the compiler.

Introduction to Programming

Variable/Explicit Strings • Created by defining an explicit array of char and then initializing it with other text. ex.: char name[] = “Cao”; • It is not necessary to state the storage requirements or number of elements, since this will be calculated by the compiler. C

a

o

\0

Introduction to Programming

Examples char first_name[5] = {‘J’,’u’,’a’,’n’,’\0’}; – previous rules on arrays still apply char last_name[3] = “Tamad”; – gcc issues a warning but compiles anyway – “Tam” is stored but not properly terminated – No way of knowing when the actual string really ends. Introduction to Programming

Examples char other[100] = “Maria Makiling”; – specifying a larger size leaves space in the array for other characters to be appended – compiler still appends '\0' after the implicit string char characters[7] = “No null”; – still valid though string is not properly terminated. – No way of knowing when to end. Introduction to Programming

Printing Strings • Strings can be printed per element as they are just arrays: int i; char cool[] = “Programming”; while(cool[i] != ‘\0’) printf(“%c”, cool[i++]);

• Alternately, printf supports “%s” printf(“%s \n”,cool); Introduction to Programming

Printing Strings • Also, we can use the function puts declared in stdio.h puts( cool );

• The use of puts() ALWAYS results in a new line character '\n' being issued at the end of each line of output.

Introduction to Programming

Accepting/Reading Strings • Using scanf() scanf( “%s”, cool );

• When using “%s”, the required address is the address of the first element in the array • The address operator '&' is not required because the name of an array in C represents the address of the first element in the array. Introduction to Programming

Accepting/Reading Strings • Same as scanf( “%s”, &cool[0] );

• Note that the scanf function uses white space characters to separate data into different fields. • We can use gets() declared in stdio.h to permit a whole line to be read and does not use white space characters to separate various items of data entry. Introduction to Programming

Example – scanf() … printf(“Anong pangalan mo? ”); scanf(“%s”, string); printf(“Ikaw si %s.”, string); ...

Anong pangalan mo? Wilmarc Lopez Ikaw si Wilmarc.

Introduction to Programming

Example – gets() ... puts(“Anong pangalan mo? ”); gets( string ); printf(“Ikaw si ”); puts( string); ...

Anong pangalan mo? Wilmarc Lopez Ikaw si Wilmarc Lopez.

Introduction to Programming

Assigning to String • Strings may be initialized with “=“ but not assigned to with “=“ • Valid (initialization) – char who[] = “Ser Wilmarc”; • Invalid – who = “Mom Wilmarc”;

Introduction to Programming

Assigning to String #include <stdio.h> #include <string.h> main(void) { char who[20]; strcpy(who, “Manong Fishball”); strcpy(who, “Tuition Fee Increase”); printf(“%s”,who); return 0; } Introduction to Programming

String Handling Functions in string.h char s1[50] = “UP”; char s2[50] = “UP System”; String function

Example

Output/value

String length

strlen(s1);

2

String concatenate

strcat(s1,” Diliman”);

s1 has the value “UP Diliman”

String compare strcmp(s1,s2) Introduction to Programming

String Handling Functions in string.h strlen(s1) – returns the number of characters before '\0' of s1 (either implicit or explicit) char s1[50] = “UP”; char s2[50] = “UP System”; int length; printf(“%d”, strlen(s1)); length = strlen(s2);

• What happens if s1 does not have a '\0'? Introduction to Programming

String Handling Functions in string.h strcpy(destination,source) – copies all of the characters from source (either implicit or explicit), including the '\0' terminator to destination (explicit) • Whatever exists in destination is overwritten • It is assumed that destination has enough space to hold the result • The destination array is returned source = strcpy(destination, “Hello”); Introduction to Programming

String Handling Functions in string.h strcat(s1,s2) – takes two strings (either implicit or explicit) as arguments, concatenates them and puts the result in s1 strcpy(s1,“Hello”); strcat(s1, “ world!”); printf(“%s”,s1);

Introduction to Programming

String Handling Functions in string.h strcmp(s1,s2) – an integer is returned that is less than, equal to or greater than zero, depending on whether s1 lexicographically less than, equal or greater than s2, respectively. – Both can either be implicit or explicit strings. strcmp(“Hello”,”Hell”); strcmp(“Hell”, “Hello”); strcmp(“Sat”,”Cat”); Introduction to Programming

>0 <0 >0

to,

is

Lab Exercises 1) Write your own strcmp function. Name it my_strcmp. 2) Write your own strcpy dunction. Name it my_strcpy.

Introduction to Programming

Related Documents

13 Es 26 - Strings
May 2020 4
Strings
April 2020 19
Strings
May 2020 23
Strings
November 2019 20
Strings
November 2019 27
Es 26 Thwx1
May 2020 5

More Documents from "Wilmarc"

Mscsgradapp
May 2020 8
09 Es26 Lab - Loops 2
May 2020 14
11 Es26 Lab - Arrays
May 2020 14
08 Es26 Lab - Loops
May 2020 6
13 Es 26 - Strings
May 2020 4