字符串是一串零个或者多个字符,并且以一个位模式为全0的NUL字节结尾。
C语言没有显式的字符串数据类型,字符串都是以字符串常量的形式出现或者存储在数组中,字符串常量适用于程序不会修改字符串数据的字符串,其他类型的数组必须存储于字符数组或动态分配的内存中。
字符串函数
C语言没有字符串数据类型的处理函数,需要调用
<string.h>
头文件。
函数名 | 功能 |
---|---|
char *strcpy( char *dst, char const *src ); |
把 src 的字符串 复制 到 dst 的字符串。 |
char *strncpy( char *dst, char const *src, size_t len ); |
把 src 的字符串 前len个字符复制 到 dst 的字符串。 |
char *strcat( char *dst, char const *src ); |
把 src 的字符串 添加 到 dst 的字符串后面。 |
char *strncat( char *dst, char const *src, size_t len ); |
把 src 的字符串 前len个字符添加 到 dst 的字符串后面。 |
int strcmp( char const *s1, char const *s2 ); |
把 s1 字符串的字符与 s2 字符串的字符 s1 > s2,返回值>0; s1 = s2,返回值=0; s1 < s2,返回值<0。 |
size_t strlen( char const *string ); |
计算字符串 string 的长度,直到’\0’结束,但不包括’\0’。返回值 无符号整型。 |
char *strchr( char const *str, int ch ); |
在字符串str中 查找 字符ch的 第一次出现 的位置,并返回改位置的指针。 |
char *strrchr( char const *str, int ch ); |
在字符串str中 查找 字符ch的 最后一次出现 的位置,并返回改位置的指针。 |
char *strpbrk( char const *str, char const *group ); |
在字符串str中 查找 字符串group中字符的 第一次出现 的位置,不包括’\0’。 |
char *strstr( char const *s1, char const *s2 ); |
在字符串s1中 查找 字符串s2 第一 次出现 的位置,并返回改位置的指针。 |
size_t strspn( char const *str, char const *group ); |
在字符串str 开头连续有几个字符 和字符串group中的字符 相同。 |
size_t strcspn( char const *str, char const *group ); |
在字符串str 开头连续有几个字符 和字符串group中的字符不 相同。 |
char *strtok( char *str, char const *sep ); |
用字符串sep作为分隔符 分隔 字符串str。 |
char *strerror( int error_number ); | 返回指向错误字符串的指针(一般输入为整型变量errno). |
void *memcpy( void *dst, void const *src, size_t length ); |
把 src 字符串前 length 个字符 复制 到dst 字符串前 length 个字符。 |
void *memmove( void *dst, void const *src, size_t length ); |
把 src 字符串前 length 个字符 复制 到dst 字符串前 length 个字符。 |
void *memcmp( void const *a, void const *b, size_t length ); |
把 a 字符串和 b 字符串 的前 length 个字符进行 比较 。 |
void *memchr( void const *a, int ch, size_t length ); |
在 a 字符串的前 length 个字符中搜索第一次 出现字符 ch 的位置。 |
void *memset( void *a, int ch, size_t length ); |
复制字符 ch到 a 字符串 的前 length 个字符。 |
#include <stdio.h>
#include <string.h>
int main ()
{
static char a[10] = "qwert";
static char b[15] = "asdfghj";
char *d;
printf( "a = %s\n", a);
d = strncpy(a, b, 4);
printf( "a = %s\n", a);
printf( "d = %s\n", d);
return(0);
}
字符函数
C语言没有字符串数据类型的处理函数,需要调用
<ctype.h>
头文件。
函数名 | 功能 |
---|---|
int iscntrl ( int ch ); |
检查 ch (字符)是否是控制字符,在ASCII 编码中,这些字符的八进制代码是从 000 到 037以及 177(DEL)。 |
int isspace( int ch ); | 检查 ch (字符)是否是空白字符。制表符’\t’、换行符’\n’、垂直制表符’\v’、换页符’\f’、回车符’\r’、空格’ ‘。 |
int isdigit( int ch ); | 检查 ch (字符)是否是十进制数字0 ~ 9 |
int isxdigit( int ch ); | 检查 ch (字符)是否是十六进制数字,包括 0 ~ 9、小写字母a~f、大写字母A~F。 |
int islower( int ch ); | 检查 ch (字符)是否是小写字母a~z |
int isupper( int ch ); | 检查 ch (字符)是否是大写字母A~Z。 |
int isalpha( int ch ); | 检查 ch (字符)是否是字母,包括小写字母a~z、大写字母A~Z。 |
int isalnum( int ch ); | 检查 ch (字符)是否是字母或数字,包括 0 ~ 9、小写字母a~z、大写字母A~Z。 |
int ispunct(int ch ); | 检查 ch (字符)是否是标点符号字符,任何不属于数字或字母的图形字符,包括 ! ” # $ % & ‘ ( ) * + , – . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ |
int isgraph( int ch ); | 检查 ch (字符)是否是图形字符,包括字母、数字、字符和标点符号字符 |
int isprint( int ch ); | 检查 ch (字符)是否是可打印字符,包括字母、数字、字符、标点符号字符和空格字 |
int tolower( int ch ); | 把大写字母 ch 转换为小写字母。 |
int toupper( int ch ); | 把小写字母 ch 转换为大写字母。 |
#include <stdio.h>
#include <ctype.h>
int main()
{
int n;
char a = 'D';
printf( "a = %c\n", a);
printf( "n = %c\n", n);
n = isupper(a); //判断a是否为大写字母,是返回真
printf( "n = %c\n", n);
a = tolower(a); //把a转换为小写字母,若a不为大写字母,直接返回
printf( "a = %c\n", a);
n = isupper(a); //判断a是否为大写字母,是返回真
printf( "n = %c\n", n);
return(0);
}
版权声明:本文为qq_37387733原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。