可以说这些字符串处理函数在写代码中使用特别频繁,是开发必备的,这些一点都不懂的话绝对吃亏。
字符串追加
头文件:#include<string.h>
一、strcat
char* strcat(char *a,char *b)
把串b直接连接到a后边
char s1[]="123";
char s2[]="AAABBB";
strcat(s1,s2);
printf("%s \n",s1);
结果:
123AAABBB
二、strncat
char *strncat(char *a,char *b ,int n)
把串b前边的n个字符直接连接到a后边
char s1[]="123";
char s2[]="AAABBB";
strncat(s1,s2,4);
printf("%s \n",s1);
结果:
123AAAB
字符串比较
根据以下代码去查看结构细品
#include <stdio.h>
#include <string.h>
int main(void)
{
char s1[]="aac15abb";
char s2[]="ABC133bb";
printf("%d \n",strnicmp (s1,s2,2));//大小写不敏感且指定长度
//strcmp 常规
//stricnp 大小写不敏感
//strncmp 能够指定长度
getchar();
getchar();
return 0;
}
字符串查找
-
函数名: strchr
功 能: 在一个串中查找给定字符的第一个匹配之处\
原 型: char *strchr(char *str, char c);
程序例: printf("%s \n", strchr(“abcdef123”,‘c’)); 结果显示为:cdef123 -
函数名: strstr //识记
功 能: 在串中查找指定字符串的第一次出现
原 型: char *strstr(char *str1, char *str2);
程序例: printf("%s \n", strchr(“abcdef123”,“c”)); 结果显示为:cdef123
程序例: printf("%s \n", strchr(“abcdef123”,“12”)); 结果显示为:123 -
函数名: strspn
查找非str2字符集的字符出现的第一个位置
功 能: 返回字符串str1中第一个不在指定字符集str2中字符位置下标(int)(下标是从0开始数的)
原 型: int strspn(char *str1, char *str2);
程序例: printf("%d \n", strspn(“111cdef123”,“12”)); 结果为3
程序例: printf("%d \n", strspn(“cdccc1def123”,“cd”));结果为5 -
函数名: strcspn
查找非字符集里的字符在str1中出现的第一个位置
功 能: 返回一个str2字符集中第一次在str1中出现的字符下标位置(int)
原 型: int strcspn(char *str1, char *str2);
程序例: printf("%d \n", strcspn(“111cdef123”,“cd”)); 结果为3
程序例: printf("%d \n", strcspn(“1cdccc1def123”,“cd”));结果为1 -
函数名: strrchr
功 能: 在串中查找指定字符的最后一个出现,返回一个位置处的字串
原 型: char *strrchr(char *str, char c);
程序例: printf("%s \n", strrchr(“1cdccc1def123”,‘d’)); 结果为 def123
程序例: printf("%s \n", strrchr(“1cdccc1def123d”,‘1’)); 结果为123d -
函数名: strpbrk //查找字符集
功 能: 在串中查找给定字符集中的字符 ,返回一个位置处的字串
原 型: char *strpbrk(char *str1, char *str2);
程序例: printf("%s \n", strpbrk(“1cdccc1def123d”,“fe”)); //结果为ef123d -
函数名: strtok 找单词
功 能: 查找由在第二个串中指定的分界符分隔开的单词,,返回一个位置处的字串,处理的结果放在str1里边
原 型: char *strtok(char *str1, const char *str2); //str *,±’"?
程序例1:
char s1[]=“d+1cdccc1def1,23,dad";
printf("%s \n", strtok(s1,"”));
printf("%s \n",s1);
结果为:
d+1cdccc1
d+1cdccc1
程序例2:
char s1[]=“d+1cdccc1*def1,23d”;
printf("%s \n", strtok(s1,"+"));
printf("%s \n",s1);
结果为:
d
d
字符串转换
头文件:#include<ctype.h>
函数名 | 功能 | 例子 |
---|---|---|
islower | 测试是否小写字母, 是返回非零,否则返回零. | islower(‘A’)、islower(‘B’)、islower(’\n’) 都是返回0;islower(‘a’)、islower(‘b’)返回>0 |
isupper | 测试是否大写字母, 是返回非零,否则返回零. | |
isalpha | 测试是否 字母, 是返回非零,否则返回零. | |
isalnum | 测试是否 数字, 是返回非零,否则返回零. | |
Iscntrl | 测试是否 控制字符, 是返回非零,否则返回零. | |
Isprint | 测试是否 可打印字符, 是返回非零,否则返回零. | |
Isgraph | 测试是否 可打印字符,不含空格,是返回非零,否则返回零. | |
Isdigit | 测试是否是字符 ‘0’~‘9’ , 是返回非零,否则返回零. | |
Isblank | 测试是否 标准空白字符, 是返回非零,否则返回零. | |
isspace | 测试是否 空白字符, 是返回非零,否则返回零. | |
ispunct | 测试是否 标点符号, 是返回非零,否则返回零. |
函数名 | 功能 | 例子 |
---|---|---|
toupper | 将小写 转换成大写 如果不是字符 返回原值 | toupper(‘a’)返回’A’ |
tolower | 将大写 转换成小写 如果不是字符 返回原值 | tolower(‘A’)返回’a’ |
头文件:#include <stdlib.h>
函数名 | 功能 | 例子 |
---|---|---|
atof | 从字符串转换成double类型 | double f1 = atof(“33.5”) |
atoi | 从字符串转换成 int 类型 | int f1 = atoi(“33”) |
atol | 从字符串转换成 long 类型 | long f1 = atol(“33”) |
atoll | 从字符串转换成 long long 类型 | long long f1 = atoll(“33”) |