0% found this document useful (0 votes)
63 views25 pages

CSE-141: Structured Programming CSE-141: Structured Programming

This document discusses strings in C programming. It covers defining string variables as character arrays, initializing and accessing elements of string arrays, common string manipulation functions like strcpy(), strcmp(), strlen(), strcat(), getting string input with gets() and fgets(), and outputting strings with puts() and fputs(). The key topics are: 1) Strings are arrays of characters that end with a null terminator. 2) Common string functions allow copying, comparing, concatenating and getting the length of strings. 3) Input functions like gets() and fgets() read strings from standard input while output functions like puts() and fgets() write to standard output.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views25 pages

CSE-141: Structured Programming CSE-141: Structured Programming

This document discusses strings in C programming. It covers defining string variables as character arrays, initializing and accessing elements of string arrays, common string manipulation functions like strcpy(), strcmp(), strlen(), strcat(), getting string input with gets() and fgets(), and outputting strings with puts() and fputs(). The key topics are: 1) Strings are arrays of characters that end with a null terminator. 2) Common string functions allow copying, comparing, concatenating and getting the length of strings. 3) Input functions like gets() and fgets() read strings from standard input while output functions like puts() and fgets() write to standard output.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

CSE-141: Structured Programming

 Lecture 19-21: String in C


Instructor
Md. Sabir Hossain
Lecturer
Dept. of CSE, CUET
Mobile: 01737143868/01882826575
Email: [email protected]
Recap- Arrays
Today’s Target – Character Arrays
(String)
Strings
“Hello” is string
 We’ve used strings literal constant

 Array with base type char


One character per element
One extra character: '\0'
 Called ‘null character’
 End marker
 Literal "Hello" stored as
string

4
String Variable Declaration
 Array of characters:

Declares a c-string variable to hold up to 9 characters


plus one null character
No initial value

5
String Variable
 Typically a partially filled array
Declare large enough to hold max-size string, including
the null character.
 Given a standard array:

 If s contains string “Hi Mom!”, then stored as:

6
String Variable Initialization
 Can initialize string:

Need not fill entire array


Initialization places '\0' at end

7
String Variable Initialization
 Can omit array-size:

Automatically makes size one more than length of


quoted string
NOT same as:

IS same as:

8
String Indexes
 A string IS an array
 Can access indexed variables of:

 hi[0] is ‘H’
 hi[1] is ‘i’
 hi[2] is ‘\0’
 hi[3] is unknown
 hi[4] is unknown

9
String Index Manipulation
 Can manipulate array elements

Be careful!
Here, ‘\0’ (null) was overwritten by a ‘!’
 If null overwritten, string no longer ‘acts’ like a string!
Unpredictable results!

10
String Library
 Used for string manipulations
Normally want to do ‘fun’ things with strings
Requires library string.h:

http://en.wikipedia.org/wiki/String.h

11
= with strings
 Strings are not like other variables, they are arrays
Cannot assign:

 Must use string library function for assignment:


strcpy(destination, source)
NO checks for size – up to programmer!
‘Assign’ value of msg to “Hello”:

 Or strncpy(destination, source, limit)


No ending null character if limit is reached

12
== with strings
 Cannot use operator == to compare

 Must use strcmp string library function to compare:


strcmp(string1, string2)
 Returns zero int if string1 is equal to string 2
 Returns <0 int if string1 is less than string2
 Returns >0 int if string1 is greater than string2

13
String Length: strlen
 Often useful to know length of string
strlen(string)
Returns number of characters
 Does not include null
 Return type is size_t so type cast may be required

14
String Concatenate: strcat
 Appends one string onto end of another
strcat(destination, source)

Be careful when concatenating words


 msg1 is missing space after Hello
 msg2 is correct

15
String Parameters to Functions
 A string is an array, so
String parameter is an array parameter
Strings passed to a function can be changed by the
receiving function!
 Like all arrays, typical to send size as well
Function could also use ‘\0’ to find end

16
String Input and Output
 Watch input size of string
Must be large enough to hold entered string!
 + ‘\n’ perhaps
 + ‘\0’
C gives no warnings of input size issues!

 Functions in stdio.h

17
Character Input: getchar
 Reads one character at a time from a text stream
int getchar( )
Reads the next character from the standard input stream
and returns its value
Return type is int!
 Will convert if assigned to char

18
Character Output: %s and putchar
 Format string placeholder for string: %s
 putchar: Writes one character at a time
int putchar (int outChar)
Writes the parameter to standard output
If successful, returns the character written

19
String variable

String Input: gets


char *gets (char *strPtr)
Inputs a line (terminated by a
newline) from standard input
Converts newline to \0
If successful, returns the string
and also places it in argument
Warning: Does not check length of
input
 gcc may produce warning message

20
String variable
Use stdin for now
String Input: fgets
char *fgets (char * strPtr, int size, FILE *fp)
Inputs characters from the specified file pointer
through \n or until specifed size is reached
Puts newline (\n) in the string if size not
reached!!!
Appends \0 at the end of the string
If successful, returns the string & places in
argument

21
String variable or constant

String Output: puts


int puts (const char *strPtr)
Takes a null-terminated string from memory and writes
it to standard output
Writes \n in place of \0

22
String variable
Use stdout for now
String Output: fputs
int fputs (const char *strPtr, FILE *fp)
Takes a null-terminated string from memory and writes
it to the specified file pointer
Drops \0
Programmer's responsibility: Make sure the newline is
present at the appropriate place(s)

23
References
• https://
www.programiz.com/c-programming/c-strings
• https://www.codesdope.com/c-string/
Allah Hafez

You might also like