Title: Character String Manipulation
1Character String Manipulation
2Overview
- Character string functions
- sscanf() function
- snprintf() function
3Some Character String Functions
double atof(const char string) - Converts
string into a floating point value int atoi(const
char string) - Converts string into an int
value char strncat(char s1, const char s2,
size_t count) - Appends up to count characters
of s2 onto the end of s1char strchr(const char
s, int c) - Searches for first occurrence of
c in s. Returns a pointer to c or NULL int
strncmp(const char s1, const char s2, size_t
count) - Compares up to count characters of s1
to s2. Returns 0 if they are identicalchar
strncpy(char s1, const char s2, size_t
count) - Copies up to count characters of s2
onto s1size_t strlen(const char s) - Returns
the number of characters in s not counting
\0char strtok(char s1, const char s2) -
Extracts tokens from string s1 based on token
separators in s2
4sscanf() Function
- include ltstdio.hgtint sscanf(const char
buffer, const char format, ) - The sscanf() function is identical to scanf()
except that data is read from the array pointed
to by buffer rather than stdin - The return value is equal to the number of
variables that were actually assigned values - A value of zero means that no fields were
assigned any values - As a side note, there is also an snscanf()
function, but it is not standardized in C
5snprintf() Function
- include ltstdio.hgtint snprintf(char buffer,
int size, const char format, ) - The snprintf() function is identical to printf()
except that the output is put into the array
pointed to by buffer instead of being written to
stdout - The array pointed to by buffer should already be
allocated - The return value is equal to the number of
characters actually placed into the array - The size parameter provides a bounds check on the
array pointed to by buffer. It is the maximum
number of characters that will be written to the
buffer
6Example use of strncpy(), sscanf() and snprintf()
include ltstdio.hgt define MAX_LENGTH 100 int
main(void) char stringAMAX_LENGTH char
stringBMAX_LENGTH int count float
costPerItem int binNbr char nameMAX_LENGTH fl
oat totalCost
(More on next slide)
7Example use strcpy(), sscanf() and sprintf()
strncpy(stringA, "103 67.4 35bottle,
MAX_LENGTH) sscanf(stringA, "d f ds",
count, costPerItem, binNbr,
name) fprintf(stderr, "Input data d .2f d
s\n\n", count, costPerItem, binNbr,
name) totalCost count costPerItem snprintf
(stringB, MAX_LENGTH, "d s items
.2f per s .2f", count, name,
costPerItem, name, totalCost) printf("Computatio
n for Bin d\n, binNbr) printf( s\n",
stringB) return 0 // End main
8Sample output
Input data 103 67.40 35 bottle Computation for
Bin 35 103 bottle items 67.40 per bottle
6942.20
?