“From today on, study hard and make progress every day”
Repetition is the best method for memory; spend one minute each day to remember the basics of C language.
“Series of 100 Essential Knowledge Points for C Language Beginners“
10. Usage of char Variables
1. Basic Characteristics of char Type
char is the smallest integer type in C language, specifically used to store a single character:
- • Storage size: 1 byte (8 bits)
- • Value range:
- • Signed char: -128 to 127
- • Unsigned char: 0 to 255
- • Essentially a small integer, can participate in arithmetic operations
2. Declaration and Initialization of char Variables
1. Basic Declaration Form
char letter = 'A'; // Character constant uses single quotes
char number = 65; // Directly using ASCII value
unsigned char byte = 200; // Unsigned character
2. Special Character Representation
char newline = '\n'; // Newline character
char tab = '\t'; // Tab character
char nullchar = '\0'; // Null character (string terminator)
char backslash = '\\'; // Backslash
3. Input and Output of char
1. printf Formatted Output
char ch = 'B';
printf("Character: %c\n", ch); // Output: B
printf("ASCII code: %d\n", ch); // Output: 66
2. scanf Input
char input;
scanf("%c", &input); // Read a single character (including spaces/newlines)
3. Safer Input Method
char safe_input;
scanf(" %c", &safe_input); // Space skips one whitespace character
// or
getchar(); // Clear input buffer
scanf("%c", &safe_input);
4. Relationship Between char and Integers
1. ASCII Code Representation
char a = 97; // 97 is the ASCII code for 'a'
printf("%c", a); // Output: a
2. Character Arithmetic
char upper = 'A';
char lower = upper + 32; // 'A'(65) + 32 = 'a'(97)
3. Case Conversion
#include <ctype.h>
char lower = tolower('B'); // 'b'
char upper = toupper('c'); // 'C'
5. char Arrays and Strings
1. Character Arrays
char word[5] = {'H','e','l','l','o'}; // Not a string (missing \0)
2. Strings
char str[6] = "Hello"; // Automatically adds \0
// Equivalent to
char str[6] = {'H','e','l','l','o','\0'};
6. Common Usage Scenarios
- 1. Character Processing:
if (ch >= 'a' && ch <= 'z') {
// Process lowercase letters
}
- 2. Bit Manipulation:
unsigned char flags = 0b10101010; // 8-bit flags
- 3. Buffer Processing:
char buffer[256];
fgets(buffer, sizeof(buffer), stdin);
7. Precautions
- 1. Difference Between Signed and Unsigned:
char c = 200; // May overflow (signed char max is 127)
unsigned char uc = 200; // Safe
- 2. Difference Between Character Constants and String Constants:
char c = 'A'; // Correct
char s = "A"; // Incorrect! "A" is a string (const char[2])
- 3. Input Buffer Issues:
int num;
char ch;
scanf("%d", &num);
scanf("%c", &ch); // Will read the previous input's newline
8. Best Practices
- 1. Clearly Specify signed/unsigned:
signed char sc = -1;
unsigned char uc = 255;
- 2. Use Character Classification Functions:
#include <ctype.h>
isalpha(ch); // Is it a letter?
isdigit(ch); // Is it a digit?
isspace(ch); // Is it a whitespace character?
- 3. Clear Buffer When Handling User Input:
// Clear current input buffer content
char ch;
while ((ch = getchar()) != '\n' && ch != EOF);
9. Application Examples
- 1. Simple Character Encryption:
char plain = 'A';
char cipher = plain ^ 0x55; // XOR encryption
- 2. Color Value Representation Processing (RGB):
struct Color {
unsigned char r, g, b;
};
———- End ———-
[Special Statement: This article is original or authorized by the author, some content and images are sourced from the internet and AI, please feel free to use, opinions are for learning reference only~~]

“If you like C, please like it”
Click the bottom right to see
“