Strings (1)
Strings (1)
Strings (1)
3
FIGURE 11-3 Storing Strings
4
FIGURE 11-4 Storing Strings and Characters
5
FIGURE 11-5 Differences Between Strings and Character Arrays
6
FIGURE 11-6 Strings in Arrays
7
Note
A string literal is enclosed in double quotes.
8
FIGURE 11-7 Character Literals and String Literals
9
FIGURE 11-8 String Literal References
10
FIGURE 11-9 Defining Strings
11
Note
Memory for strings must be allocated before the
string can be used.
12
FIGURE 11-10 Initializing Strings
13
11-3 String Input/Output Functions
14
Note
The string conversion code(s) skips whitespace.
15
Note
Always use a width in the field specification
when reading strings.
16
Note
17
FIGURE 11-11 gets and fgets Functions
18
FIGURE 11-12 puts and fputs Operations
19
Reading strings: %s format
void main()
{
char name[25];
scanf("%s", name);
printf("Name = %s \n", name);
}
20
An example
void main()
{
#define SIZE 25 Seen on screen
int i, count=0;
char name[SIZE]; Typed as input
scanf("%s", name); Satyanarayana
printf("Name = %s \n", name);
for (i=0; name[i]!='\0'; i++)
Name = Satyanarayana
if (name[i] == 'a') count++; Total a's = 6
printf("Total a's = %d\n", count);
}
Printed by program
Note that character strings read
in %s format end with ‘\0’
21
Differences : array & pointers
p a b c \0
23
Library Functions for String
Handling
You can write your own C code to do
different operations on strings like finding
the length of a string, copying one string to
another, appending one string to the end
of another etc.
C library provides standard functions for
these that you can call, so no need to write
your own code
To use them, you must do
#include <string.h>
At the beginning of your program (after #include
<stdio.h>) 24
String functions we will see
25
strlen()
strlen(String)
Takes a null-terminated strings (we routinely
refer to the char pointer that points to a null-
terminated char array as a string)
Returns the length of the string, not
counting the null (\0) character
26
strcat(s1,s2)
27
strcmp(s1,s2)
28
strcpy()
The characters is the string s2 are copied into
s1 until \0 is moved. Whatever exists in s1 is
overwritten. It is assumed that s1 has enough
space to hold the result. The pointer s1 is
returned.
29
strrev(s1)
It is used to reverse the content of
the string.
Some other string function are
strupr(s1)-convert the string into
upper case
strlwr(s1)- convert the string into
lower case
30
Example: Using string
functions
int main()
{
char s1[ ] = "beautiful big sky country", Output
s2[ ] = "how now brown cow";
25
printf("%d\n",strlen (s1));
printf("%d\n",strlen (s2+8)); 9
printf("%d\n", strcmp(s1,s2)); -1
printf("%s\n",s1+10); big sky country
strcpy(s1+10,s2+8); beautiful brown cows!
strcat(s1,"s!");
printf("%s\n", s1);
return 0;
}
31