C
Beginner
1 min read
C Strings and <string.h>
Example
#include <stdio.h>
#include <string.h>
int main(void)
{
char src[] = "Hello, World";
char dest[64];
char upper[64];
/* strlen does NOT count the null terminator */
printf("strlen(\"%s\") = %zu\n", src, strlen(src)); /* 12 */
/* strcpy: destination must be large enough */
strcpy(dest, src);
printf("strcpy: \"%s\"\n", dest);
/* strncpy: safer — limits bytes copied */
strncpy(upper, src, sizeof(upper) - 1);
upper[sizeof(upper) - 1] = '\0'; /* always null-terminate! */
/* strcmp: 0 means equal */
printf("strcmp same: %d\n", strcmp(src, dest)); /* 0 */
printf("strcmp 'a','b': %d\n", strcmp("a", "b")); /* <0 */
/* strcat: appending */
char greeting[64] = "Hello";
strncat(greeting, ", C!", sizeof(greeting) - strlen(greeting) - 1);
printf("strcat: \"%s\"\n", greeting);
/* strchr: find first occurrence of character */
char *comma = strchr(src, ',');
if (comma)
printf("Found ',' at position %td\n", comma - src);
/* strstr: find substring */
char *world = strstr(src, "World");
if (world)
printf("Found \"World\" at position %td\n", world - src);
/* Manually uppercase using pointer walk */
char *p = upper;
while (*p) {
if (*p >= 'a' && *p <= 'z') *p -= 32;
p++;
}
printf("upper: \"%s\"\n", upper);
return 0;
}