C String Functions
C String Functions
C string functions are a collection of built-in functions available in the
To use them, you must include the
#include <string.h>
String Length
For example, to get the length of a string, you can use the strlen() function:
Example
#include <stdio.h>
#include <string.h>
int main() {
char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet));
return 0;
}
Output
26
In the Strings chapter, we used sizeof to get the size of a string/array. Note that sizeof and strlen behaves differently, as sizeof also includes the \0 character when counting:
Example
#include <stdio.h>
#include <string.h>
int main() {
char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("Length is: %d\n", strlen(alphabet));
printf("Size is: %d\n", sizeof(alphabet));
return 0;
}
Output
Length is: 26
Size is: 27
It is also important that you know that sizeof will always return the memory size (in bytes), and not the actual string length:
Example
#include <stdio.h>
#include <string.h>
int main() {
char alphabet[50] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("Length is: %d\n", strlen(alphabet));
printf("Size is: %d\n", sizeof(alphabet));
return 0;
}
Output
Length is: 26
Size is: 50
Concatenate Strings
Example
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "Hello ";
char str2[] = "CodeLines!";
// Concatenate str2 to str1 (the result is stored in str1)
strcat(str1, str2);
// Print str1
printf("%s", str1);
return 0;
}
Output
Length is: 26
Size is: 50
Note that the size of str2 should be large enough to store the copied string (20 in our example).
Compare Strings
To compare two strings, you can use the strcmp() function.
It returns 0 if the two strings are equal, otherwise a value that is not 0:
Example
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "Hello";
char str3[] = "Hi";
// Compare str1 and str2, and print the result
printf("%d\n", strcmp(str1, str2));
// Compare str1 and str3, and print the result
printf("%d\n", strcmp(str1, str3));
return 0;
}
Output
0
-4