C语言基础-字符串函数

string.h

string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。

 

常用字符串函数

字符串长度函数--strlen

size_t strlen(const char *str)

  • 格式:strlen(字符串数组)
  • 功能:计算字符串长度
  • 返回值:返回字符串实际长度,不包括'\0'在内
  • 其他:对于8、16进制数看做对应ASCII码对应的字符、对于\符号看做一位

 

字符串拷贝函数--strcpy

char *strcpy(char *dest, const char *src)

  • 格式:strcpy(目标数组,待拷贝数组)
  • 功能:将待拷贝数组拷贝到目标数组
  • 返回值:返回目标数组的首地址
  • 说明:
    • 目标数组必须足够大
    • 拷贝时'\0'一同拷贝

char *strncpy(char *dest, const char *src, size_t n)

  • 参数n:
    • 要从源中复制的字符数。

 

字符串连接函数--strcat

char *strcat(char *dest, const char *src)

  • 格式:strcat(目标数组,待连接数组)
  • 功能:把待连接数组连接到目标数组后面
  • 返回值:返回目标数组的首地址
  • 说明:
    • 目标数组必须足够大
    • 连接前,两字符串均以'\0'结束;连接后,目标数组的'\0'取消,新串最后加'\0'

char *strncat(char *dest, const char *src, size_t n)

  • 参数n:
    • 要追加的最大字符数。 

 

字符串比较函数strcmp

nt strcmp(const char *str1, const char *str2)

  • 格式:strcmp(字符串1,字符串2)
  • 功能:比较两个字符串
  • 比较规则:对两个字符串分别从左到右逐个字符进行比较(ASCII码),遇到不同字符或'\0'为止
  • 返回值:返回int型整数
    • 若字符串1 < 字符串2,返回负整数--(-1)
    • 若字符串1 > 字符串2,返回正整数--(1)
    • 若字符串1 == 字符串2,返回零

int strncmp(const char *str1, const char *str2, size_t n)

  • 参数n:
    • 要比较的最大字符数。

 int strcasecmp(const char *, const char *)

  • 作用:比较函数忽略大小写

int strncasecmp(const char *, const char *, size_t);

  • 参数n:
    • 要比较的最大字符数。

 

 

字符串查找字符函数--strchr

char *strchr(const char *str, int c)

  • 格式:strchr(str,c)
  • 功能:查找字符串中字符的位置
  • 返回值:该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL

char *strrchr(const char *str, int c)

  • 功能:在参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置。

字符串查找字符串函数--strstr 

char *strstr(const char *haystack, const char *needle)

  • 格式:strstr(str1,str2)
  • 功能:在str1中查询str2的位置
  • 返回值:该函数返回在 str1 中第一次出现 str2 字符串的位置,如果未找到则返回 null。

     

其他请查看string.h

其他常用

stdio.h

 

获取输入--gets

char *gets(char *str)

  • 格式:gets()
  • 功能:从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
  • 返回值:如果成功,该函数返回 str。如果发生错误或者到达文件末尾时还未读取任何字符,则返回 NULL。

 

int fgetc(FILE *stream)

  • 描述:C 库函数 int fgetc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
  • 参数:
    • stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了要在上面执行操作的流。
  • 返回值:该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。

     

char *fgets(char *str, int n, FILE *stream)

  • 参数:
    • str -- 这是指向一个字符数组的指针,该数组存储了要读取的字符串。
    • n -- 这是要读取的最大字符数(包括最后的空字符)。通常是使用以 str 传递的数组长度。
    • stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了要从中读取字符的流。
  • 返回值:如果成功,该函数返回相同的 str 参数。如果到达文件末尾或者没有读取到任何字符,str 的内容保持不变,并返回一个空指针。

    如果发生错误,返回一个空指针。

 

进行输出--puts

int putc(int char, FILE *stream)

  • 描述:

    C 库函数 int putc(int char, FILE *stream) 把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。

  • 参数:
    • char -- 这是要被写入的字符。该字符以其对应的 int 值进行传递。
    • stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符的流。
  • 返回值:该函数以无符号 char 强制转换为 int 的形式返回写入的字符,如果发生错误则返回 EOF。

     

int putchar(int char)

  • 描述:C 库函数 int putchar(int char) 把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。
  • 参数:
    • char -- 这是要被写入的字符。该字符以其对应的 int 值进行传递。
  • 返回值:该函数以无符号 char 强制转换为 int 的形式返回写入的字符,如果发生错误则返回 EOF。

 

 

int puts(const char *str) 

 

  • 描述:C 库函数 int puts(const char *str) 把一个字符串写入到标准输出 stdout,直到空字符,但不包括空字符。换行符会被追加到输出中。
  • 参数:
    • str -- 这是要被写入的 C 字符串。
  • 返回值:如果成功,该函数返回一个非负值,如果发生错误则返回 EOF。

 

int fputs(const char *str, FILE *stream)

  • 描述:C 库函数 int fputs(const char *str, FILE *stream) 把字符串写入到指定的流 stream 中,但不包括空字符。
  • 参数:
    • str -- 这是一个数组,包含了要写入的以空字符终止的字符序列。
    • stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符串的流。
  • 返回值:该函数返回一个非负值,如果发生错误则返回 EOF。

 

 

 

 

ctype.h 

 

1 int isalnum(int c)
该函数检查所传的字符是否是字母和数字。
2 int isalpha(int c)
该函数检查所传的字符是否是字母。
3 int iscntrl(int c)
该函数检查所传的字符是否是控制字符。
4 int isdigit(int c)
该函数检查所传的字符是否是十进制数字。
5 int isgraph(int c)
该函数检查所传的字符是否有图形表示法。
6 int islower(int c)
该函数检查所传的字符是否是小写字母。
7 int isprint(int c)
该函数检查所传的字符是否是可打印的。
8 int ispunct(int c)
该函数检查所传的字符是否是标点符号字符。
9 int isspace(int c)
该函数检查所传的字符是否是空白字符。
10 int isupper(int c)
该函数检查所传的字符是否是大写字母。
11 int isxdigit(int c)
该函数检查所传的字符是否是十六进制数字。

 

 

1 int tolower(int c)
该函数把大写字母转换为小写字母。
2 int toupper(int c)
该函数把小写字母转换为大写字母。
posted @ 2020-04-27 17:26  Binb  阅读(548)  评论(0编辑  收藏  举报