0% found this document useful (0 votes)
50 views

Strings

Strings are arrays of characters that end with a null terminator. Standard C library functions allow input, output, and manipulation of strings. Key functions include gets() and puts() to input/output strings with spaces, strcpy() and strcat() to copy/concatenate strings, and strcmp() to compare strings. The string handling library provides additional functions for common string operations.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views

Strings

Strings are arrays of characters that end with a null terminator. Standard C library functions allow input, output, and manipulation of strings. Key functions include gets() and puts() to input/output strings with spaces, strcpy() and strcat() to copy/concatenate strings, and strcmp() to compare strings. The string handling library provides additional functions for common string operations.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 32

• Strings

Outline
• Introduction to string
– Declaration
– Initialization
• Reading and writing strings
– functions of the standard input/output library
(stdio.h)
• Processing of strings.
– String Manipulation Functions from the String
Handling Library
• Comparing strings
– Determining the length of string
Introduction
• Use of C standard library functions for strings
and characters:
– Easy string and character processing
– Programs can process characters, strings, lines of
text, and blocks of memory
• These techniques are used to make
– Word processors
– Page layout software
– Typesetting programs
Fundamentals of characters
• Characters
– Building blocks of programs
• Every program is a sequence of meaningfully grouped
characters
– Character constant
• An int value represented as a character in single quotes
• 'z' represents the integer value of z (122 ASCII value).
Fundamentals of strings
• Strings
– Array of characters treated as a single unit called
string:
• Can include letters, digits and special characters (*, /,
$)
– String literal (string constant) - written in double
quotes
• “Lovely Professional University."
Fundamentals of strings
• Strings are arrays of characters
– String is a pointer to first character (like array)
– Value of string is the address of first character
• Each element of the string is stored in a
contiguous memory locations.
• Terminated by a null character(‘\0’) which is
automatically inserted by the compiler to
indicate the end of string.
String Definition
• They are defined as
char array_name[size];
e.g. char carname[30];
or char *carname;
• It defines an array name and reserves 30 bytes
for storing characters and single character
consumes 1 bytes each.
• Since the last byte is used for storing null
character so total number of character specified
by the user cannot exceed 29.
String Initialization
• String Initialization
– Two ways:
– Define as a character array or a variable of type
char *
char color[] = "blue"; //char array
Or char color[] = { 'b', 'l', 'u', 'e', '\0' };
char *colorPtr = "blue"; //pointer variable
– Remember that strings represented as character
arrays end with '\0'
b •l coloruhas 5 eelements
\0 b l u e \0
color Temporary

*colorPtr
char *colorPtr = "blue"; //pointer variable
Printf(“%s”, colorPtr);

Is correct way to use pointer to char. But:


char *colorPtr; //pointer variable
scanf(“%s”, &colorPtr);
printf(“%s”, colorPtr); /* invalid statement %s don’t
work with pointer to char */
String Input/Output
• Inputting strings
– Use scanf.
scanf("%s", word);
• Copies input into word[]
• Do not need & (because a string is a pointer)
– Remember to leave last place in the array for '\0‘.
– Because array knows no bounds the string written
beyond char array size will overwrite the data in
memory.
• Displaying strings
– Use printf.
printf("%s", word);
#include <stdio.h>
Program to read
void main() and display
{
string
char carname[20]; //string char array
printf(“Enter the name of your car: ");
scanf("%s", carname);
// to display the input
printf(“\nName of car is %s", carname);

} //end main

Enter the name of your car: XUV500


Name of car is XUV500
Output
How?
• The last program will print only a single word
not the sentences with white spaces?
• That is if input is
Lovely Professional University
• Output will be: use gets and puts

Lovely
• So how to print:
Lovely Professional University
Standard I/O Library Functions
• List of functions in #include<stdio.h>
• Used for string input/output functions.
Function Description
gets( char *s ); Inputs characters from the standard input into the
array s until a newline or end-of-file character is
encountered. A terminating null character is
appended to the array.
puts( const char *s ); Prints the string s followed by a newline character.
#include <stdio.h>
Program to print
void main() strings with
{
white spaces
char name[100]; //string char array using library
puts(“\nEnter a string: ”); functions
gets(name); //to input string with space

printf(“\nString is: ”)
puts(name); //to output const string

}//end main

Enter a string:
Lovely Professional University
Output
String is:
Lovely Professional University
#include <stdio.h>
Program to print
void main() strings character
{
by character
char name[]={“Lovely Professional using loop.
University"}; //string char array
int i=0;

while(name[i]!='\0') //untill null character


{
printf("%c", name[i]);
i++;
}//end while

}//end main

Lovely Professional University


Output
String Handling Library
• Functions defined in
#include<string.h>
• String handling library provides many useful
functions:
– Manipulate string data(copy and concatenate)
– Comparing strings
– Determine string length
– Search strings
String Manipulation Functions
• List of string manipulation functions
Function prototype Function description
char *strcpy( char *s1, const char *s2 ) Copies string s2 into array s1. The value of
s1 is returned.
char *strncpy( char *s1, const char *s2, Copies at most n characters of string s2
int n ) into array s1. The value of s1 is returned.
char *strcat( char *s1, const char *s2 ) Appends string s2 to array s1. The first
character of s2 overwrites the terminating
null character of s1. The value of s1 is
returned.
char *strncat( char *s1, const char *s2, Appends at most n characters of string s2
int n ) to array s1. The first character of s2
overwrites the terminating null character
of s1. The value of s1 is returned.
strcpy() and strncpy()
• strcpy() copies the entire second argument
string into first argument.
strcpy( s1, s2);
• strncpy() copies the first n characters of
second string argument into first string argument.
strncpy( s1, s2, 4);
– A null character ('\0') is appended explicitly to first
argument, because the call to strncpy in the program
does not write a terminating null character.
– The third argument is less than the string length of the
second argument.
Example Code
This program
demonstrates
string
manipulation
/ processing
functions:
strcpy() and
strncpy()
Output
The string in array x is: Happy Birthday to You
The string in array y is: Happy Birthday to You
The string in array z is: Happy Birthday
strcat()
• Function strcat appends its second argument
string to its first argument string.
strcat( s1, s2);
• The array used to store the first string should be
large enough to store
– the first string
– the second string and
– the terminating null character copied from the second
string.
strncat()
• Function strncat appends a specified
number of characters from the second string
to the first string.
strncat( s1, s2, 6)
• A terminating null character is automatically
appended to the result.
Example Code
This program
demonstrates
string
manipulation
/ processing
functions:
strcat() and
strncat()
output
s1 = Happy
s2 = New Year
strcat( s1, s2 ) = Happy New Year
strncat( s3, s1, 6 ) = Happy
strcat( s3, s1 ) = Happy Happy New Year
Comparison Functions of the
String Handling Library
• Comparing strings
– Computer compares numeric ASCII codes of
characters in string
– strcmp() Compares its first string argument with
its second string argument, character by
character.
– Function strncmp() does not compare characters
following a null character in a string.
strcmp()
int strcmp( const char *s1, const char *s2 );
– Compares string s1 to s2
– Returns
• a negative number if s1 < s2,
• zero if s1 == s2
• a positive number if s1 > s2
strncmp()
int strncmp( const char *s1, const char *s2, int
n);
– Compares up to n characters of string s1 to s2
• a negative number if s1 < s2,
• zero if s1 == s2
• a positive number if s1 > s2
Example Code
This program
demonstrates
string
comparison
functions:
strcmp() and
strncmp()
Output
s1 = Happy New Year
s2 = Happy New Year
s3 = Happy Holidays
 
strcmp(s1, s2) = 0
strcmp(s1, s3) = 1
strcmp(s3, s1) = -1

strncmp(s1, s3, 6) = 0
strncmp(s1, s3, 7) = 1
strncmp(s3, s1, 7) = -1
Determining the length of string
strlen()
• Function strlen in #include<string.h>
• Function strlen() takes a string as an
argument and returns the number of
characters in the string
– the terminating null character is not included in
the length
#include <stdio.h>
#include <string.h>
Program
void main() demonstrates
{
/* initialize 3 char pointers */
string length
const char *string1 = function strlen()
"abcdefghijklmnopqrstuvwxyz";
const char *string2 = "four";
const char *string3 = "Boston";
printf("%s\"%s\"%s%d\n%s\"%s\"%s%d\n
%s\"%s\"%s%d\n",
"The length of “,string1,"is",
strlen(string1),
"The length of “,string2,”is“,
strlen(string2),
"The length of “,string3,”is“,
strlen(string3));
} /* end main */
The length of "abcdefghijklmnopqrstuvwxyz" is 26
The length of "four" is 4
The length of "Boston" is 6

You might also like