字符及字符串操作函数

一、标C中字符串操作相关函数

1、字符串常用基本函数

(1)strlen(3)
#include <string.h>
size_t strlen(const char *s);

功能:
  主要用于计算指定字符串的长度,单位:字节。

(2)strcpy(3) / strncpy(3)
#include <string.h>
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);

功能:
  主要用于将要复制的字符串src复制到指定的字符串dest,其中strncpy()能够指定要复制的位数。

返回值:
  success —- 指向字符串dest的指针;

(3)strcmp(3) / strncmp(3)
#include <string.h>
int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);

功能:
  主要用于比较两个字符串的大小;

参数:
  第一个参数:存放第一个字符串的地址;
  第二个参数:存放第二个字符串的地址;
  第三个参数:指定两个字符串比较的位数;

返回值:
  若s1<s2,则返回值小于0;若s1=s2,则返回值等于0;若s1>s2,则返回值大于0;

(4)strcat(3) / strncat(3)
#include <string.h>
char *strcat(char *dest, const char *src);
char *strncat(char *dest, const char *src, size_t n);

功能:
  主要用于将字符串src拼接到字符串dest的末尾并保存于dest中;

参数:
  第一个参数:存放第一个字符串的地址;
  第二个参数:存放第二个字符串的地址;
  第三个参数:选取字符串src中指定位数用于拼接;

返回值:
  success —- 指向拼接成功的字符串地址的指针;

2、字符串的其它相关函数

(1)strcasecmp(3) / strncasecmp(3) - - - - 比较字符串
#include <strings.h>
int strcasecmp(const char *s1, const char *s2);
int strncasecmp(const char *s1, const char *s2, size_t n);

功能:
  用途与strcmp()类似,只是strcasecmp()不区分字符串字母的大小写;

返回值:
  若s1<s2,则返回值小于0;若s1=s2,则返回值等于0;若s1>s2,则返回值大于0;具体返回的数值大小等于两个字符串首个不等字符ASCII码值的差;如:s1="A";s2="0",返回'a'-'0'=97-48=49

注意:
  经测试,strcasecmp()中将所有的大写字母都作为小写字母处理;

(2)strchr(3) / strrchr(3) - - - - 查找字符
#include <string.h>
char *strchr(const char *s, int c);
char *strrchr(const char *s, int c);

功能:
  在给定的字符串中查找指定的字符,其中strchr()返回该字符第一次出现的位置的地址,而strrchr()返回该字符最后出现的位置的地址,若找不到该字符均返回NULL;

参数:
  第一个参数:给定的字符串地址;
  第二个参数:待查找字符的ASCII码,如:'a'97都可以;

(3)strstr(3) / strcasestr(3) - - - - 查找字符串
#include <string.h>
char *strstr(const char *haystack, const char *needle);
char *strcasestr(const char *haystack, const char *needle);

功能:
  主要用于在指定的字符串中查找子字符串,如"hello world!"中查找"world"strcasestr()的区别是能忽略字母的大小写差异。

返回值:
  success —- 子字符串的首地址,error —- NULL;

(4)atoi(3) / atol(3) / atoll(3) - - - - 转化类型
#include <stdlib.h>
int atoi(const char *nptr);
long atol(const char *nptr);
long long atoll(const char *nptr);

功能:
  主要用于将以数字开头的字符串的起始数据部分转换为intlonglong long类型;

#include <stdlib.h>
double strtod(const char *nptr, char **endptr);
float strtof(const char *nptr, char **endptr);
long double strtold(const char *nptr, char **endptr);

3、检查字符的内容

(1)isalnum(3)
#include <ctype.h>
int isalnum(int c);

功能:
  主要用于判断指定字符是否是数字或字母,若是则返回非0,若不是则返回0;等同于isalpha(c) || isdigit(c)

(2)isalpha(3) / isdigit(3)
#include <ctype.h>
int isalpha(int c);

功能:
  主要用于判断指定字符是否是字母,若是则返回非0,若不是则返回0;等同于isupper(c) || islower(c)

#include <ctype.h>
int isdigit(int c);

功能:
  主要用于判断指定字符是否是数字,若是则返回非0,若不是则返回0;

(3)isupper(3) / islower(3)
#include <ctype.h>
int isupper(int c);

功能:
  主要用于判断指定字符是否是大写字母,若是则返回非0,若不是则返回0;

#include <ctype.h>
int islower(int c);

功能:
  主要用于判断指定字符是否是小写字母,若是则返回非0,若不是则返回0;

4、其他字符检查函数

int iscntrl(int c);//检查是否为控制字符
int isgraph(int c);//检查是否是图形字符,等效于 isalnum() || ispunct()  
int isprint(int c);//检查是否是可打印字符
int ispunct(int c);//检查是否为标点符号
int isspace(int c);//检查是否为空格类型字符
int isxdigit(int c);//检查是否为十六进制数字表示的有效字符
int isascii(int c);//检查是否为ASCII字符集中的字符
int isblank(int c);//检查是否为空格或tab字符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值