---
title: 1.19 Character and String Format Specifiers
description: "The `%c` and `%s` conversion specifiers are used by `printf()` to display character and string data. `%c` displays a single character, while `%s` displays a null-terminated string. ``` #include int main() { char letter = 'A'; char name[] = \"Edcret\";…"
url: "https://edcret.in/docs/c-programming/basic-refreshers/1-19-character-and-string-format-specifiers/"
updated: "2026-09-06"
category: C Programming / Basic Refreshers
---

# 1.19 Character and String Format Specifiers

The `%c` and `%s` conversion specifiers are used by `printf()` to display character and string data. `%c` displays a single character, while `%s` displays a null-terminated string.

```
#include <stdio.h>

int main()
{
    char letter = 'A';
    char name[] = "Edcret";

    printf("Character: %c\n", letter);
    printf("String: %s\n", name);

    return 0;
}
```

### Example Output

```
Character: A
String: Edcret
```

### Explanation

The `%c` conversion specifier displays a single character:

```
printf("%c\n", letter);
```

The argument corresponding to `%c` is expected to have type `int`. A `char` argument is automatically promoted to `int` when passed to `printf()`.

The `%s` conversion specifier displays characters starting at the address supplied by the argument until a null character `'\0'` is encountered:

```
printf("%s\n", name);
```

The array:

```
char name[] = "Edcret";
```

contains the characters followed by a terminating null character.

### Character and String Format Specifiers

| Specifier | Expected argument type | Purpose |
| --- | --- | --- |
| `%c` | `int` | Displays a single character |
| `%s` | `char *` | Displays a null-terminated string |

For `%s`, the supplied pointer must point to a valid null-terminated character sequence. Otherwise, `printf()` may access memory beyond the intended string, resulting in undefined behavior.
