PPT-string - in C-DR - AB-Kadam
PPT-string - in C-DR - AB-Kadam
By
Dr. A. B. Kadam
9-1
Strings
• C implements the string data structure using
arrays of type char.
• You have already used the string extensively.
– printf(“This program is terminated!\n”);
– #define ERR_Message “Error!!”
• Since string is an array, the declaration of a
string is the same as declaring a char array.
– char string_var[30];
– char string_var[20] = “Initial value”;
9-2
Memory Storage for a String
9-3
Arrays of Strings
9-4
Input/Output of a String
• The placeholder %s is used to represent string
arguments in printf and scanf.
– printf(“Topic: %s\n”, string_var);
• The string can be right-justified by placing a
positive number in the placeholder.
– printf(“%8s”, str);
• The string can be left-justified by placing a
negative number in the placeholder.
– Printf(“%-8s”, str);
9-5
Right and Left Justification of
Strings
The “%8s” placeholder displays a string which is
right-justified and in 8-columns width.
If the actual string is longer than the width, the displayed field
is expanded with no padding.
9-6
An Example of Manipulating String
with scanf and printf
9-8
String Library Functions
9-9
Some String Functions from String.h
Function Purpose Example
strcpy Makes a copy of a strcpy(s1, “Hi”);
string
strcat Appends a string to the strcat(s1, “more”);
end of another string
strcmp Compare two strings strcmp(s1, “Hu”);
alphabetically
strlen Returns the number of strlen(“Hi”)
characters in a string returns 2.
strtok Breaks a string into strtok(“Hi, Chao”,
tokens by delimiters. “ ,”);
9-10
Functions strcpy and strncpy
• Function strcpy copies the string in the second
argument into the first argument.
– e.g., strcpy(dest, “test string”);
– The null character is appended at the end automatically.
– If source string is longer than the destination string, the
overflow characters may occupy the memory space used by
other variables.
• Function strncpy copies the string by specifying the
number of characters to copy.
– You have to place the null character manually.
– e.g., strncpy(dest, “test string”, 6); dest[6] = ‘\0’;
– If source string is longer than the destination string, the
overflow characters are discarded automatically.
9-11
Extracting Substring of a String (1/2)
• We can use strncpy to extract substring of one string.
– e.g., strncpy(result, s1, 9);
9-12
Extracting Substring of a String (2/2)
• e.g., strncpy(result, &s1[5], 2);
9-13
Functions strcat and strlen
• Functions strcat and strncat concatenate
the fist string argument with the second string
argument.
– strcat(dest, “more..”);
– strncat(dest, “more..”, 3);
• Function strlen is often used to check the
length of a string (i.e., the number of characters
before the fist null character).
– e.g., dest[6] = “Hello”;
strncat(dest, “more”, 5-strlen(dest));
dest[5] = ‘\0’;
9-14
Distinction Between Characters and
Strings
• The representation of a char (e.g., ‘Q’) and a
string (e.g., “Q”) is essentially different.
– A string is an array of characters ended with the null
character.
Q Q \0
9-15
String Comparison (1/2)
• Suppose there are two strings, str1 and str2.
– The condition str1 < str2 compare the initial memory
address of str1 and of str2.
• The comparison between two strings is done by
comparing each corresponding character in them.
– The characters are comapared against the ASCII table.
– “thrill” < “throw” since ‘i’ < ‘o’;
– “joy” < joyous“;
• The standard string comparison uses the strcmp and
strncmp functions.
9-16
String Comparison (2/2)
Relationship Returned Value Example
str1 < str2 Negative “Hello”< “Hi”
str1 = str2 0 “Hi” = “Hi”
str1 > str2 Positive “Hi” > “Hello”
9-17
Input/Output of Characters and
Strings
• The stdio library provides getchar function
which gets the next character from the standard
input.
– “ch = getchar();” is the same as
“scanf(“%c”, &ch);”
– Similar functions are putchar, gets, puts.
• For IO from/to the file, the stdio library also
provides corresponding functions.
– getc: reads a character from a file.
– Similar functions are putc, fgets, fputs.
9-18
Character Analysis and Conversion
• The <ctype.h> library defines facilities for character
analysis and conversion.
Functions Description
isalpha Check if the argument is a letter