C语言中字符和字符串处理(ANSI字符和Unicode字符)
字符处理
在C语言中,字符是采用ANSI编码方式表示的,ANSI编码是一个字符编码标准,定义了128个字符,包括数字、大小写字母、标点符号、控制字符等,使用一个字节表示一个字符。使用字符类型(char)来存储一个字符。
- 基本字符类型
在C语言中,基本的字符类型是char,在头文件
typedef char int8_t;
typedef signed char int8_t;
typedef unsigned char uint8_t;
typedef unsigned char uchar;
- 字符IO
C语言提供了以下的字符IO函数:
- getc(fp) 从指定的输入流(fp)中获取一个字符
- putc(ch, fp) 将字符ch输出到指定的输出流(fp)中
- getchar() 从键盘读取一个字符
- putchar(ch) 将字符ch输出到屏幕终端
示例1:
#include <stdio.h>
int main() {
char c;
printf("Enter a character: ");
c = getchar();
printf("\nYou entered: ");
putchar(c);
return 0;
}
- 字符串处理
字符串是一串字符构成的序列,以null字符('\0')结尾。在C语言中,字符串由一组字符组成,使用字符数组(char array)或字符指针(char pointer)来存储。在C语言中,字符串是不可变的,一旦定义了字符串的内容就不能被改变。
- 字符串的定义
可以使用以下两种方式定义字符串:
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
或者
char greeting[] = "Hello";
以上代码将创建一个包含字符串"Hello"的字符数组greeting。在第一个示例中,定义了字符数组长度为6,最后一个字符为null字符('\0'),用来表示字符串的结尾。在第二个示例中,编译器会自动计算字符数组长度。
- 字符串函数
C语言中预定义了很多字符串处理函数,包括以下常用的函数:
- strlen(str) 返回字符串str的长度
- strcpy(dest, src) 将字符串src复制到字符串dest,包括null字符('\0'),并返回dest
- strcat(dest, src) 将字符串src添加到字符串dest的结尾即连接两个字符串
- strcmp(str1, str2) 比较字符串str1和str2,如果两个字符串相等则返回0,否则返回非零值
- strstr(str1, str2) 检查字符串str1中是否包含str2,如果找到则返回第一次出现的位置指针,否则返回NULL
示例2:
#include <stdio.h>
#include <string.h>
int main () {
char str1[12] = "Hello";
char str2[12] = "World";
char str3[12];
int len ;
// 复制字符串
strcpy(str3, str1);
printf("strcpy(str3, str1) : %s\n", str3 );
// 连接字符串
strcat(str1, str2);
printf("strcat(str1, str2) : %s\n", str1 );
// 字符串长度
len = strlen(str1);
printf("strlen(str1) : %d\n", len );
return 0;
}
以上示例定义了三个字符数组str1、str2和str3,分别存储"Hello"、"World"和空字符,然后使用strcpy()将str1复制到str3中,在使用strcat()连接str1和str2,最后使用strlen()计算字符串str1的长度,并输出结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言中字符和字符串处理(ANSI字符和Unicode字符) - Python技术站