字符分类函数
-
iscntrl 是不是控制字符 -
isspace 是不是空白字符 -
isdigit 是不是十进制数字字符 -
isxdigit 是不是十六进制数字字符 -
islower 是不是小写字母 -
isupper 是不是大写字母 -
isalpha 是不是字母 -
isalnum 是不是字母或者数字 -
ispunct 是不是标点符号 -
isgraph 是不是图形字符 -
isprint 是不是可打印字符
#include<string.h>
#include<ctype.h>
int main() {
int ret = 0;
char ch5 = 'w';
int ch3 = 3;
char ch33 = '3';
//1. iscntrl 是不是控制字符
//2. isspace 是不是空白字符
//3. isdigit 是不是十进制数字字符
printf("isdigit \n");
ret = isdigit(ch33);
printf("%d \n",ret);
//4. isxdigit 是不是十六进制数字字符
//5. islower 是不是小写字母
// 返回值为int 类型 如果返回值时 0 证明参数是非小写字符
// 如果返回值是 非0 证明参数是小写字符
printf("islower \n");
ret = islower(ch5);
printf("%d \n", ret);
//6. isupper 是不是大写字母
//7. isalpha 是不是字母
//8. isalnum 是不是字母或者数字
//9. ispunct 是不是标点符号
//10. isgraph 是不是图形字符
//11. isprint 是不是可打印字符
return 0;
}
字符转换函数
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main() {
char ch1 = tolower('F');
char ch2 = toupper('e'); // 注意这里是单个字符不是字符串
printf("%c %c",ch1,ch2);
return 0;
}
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main() {
char arr[] = "qsdDFGR";
for (int i = 0; i < sizeof(arr); i++)
{
if (isupper(arr[i])) {
arr[i] = tolower(arr[i]);
}
}
printf("%s",arr);
return 0;
}
内存操作函数
要了解 strcpy strncpy strcmp strncmp strcat strncat 的操作对象都是字符串 (不能对整形数组 浮点数数组 结构体数组等进行操作。原因是这些类型里没有利 \0 。另一个原因是他们的形参类型都是char*)
memcpy 内存拷贝
struct s {
char arr[10];
int age;
};
#include<stdio.h>
#include<string.h>
int main() {
int arr1[] = { 1,2,3,4,5 };
int arr2[10] = { 0 };
memcpy(arr2, arr1, sizeof(arr1));//这里参数3指的的是字节数 由于拷贝元和目标空间都是int型数组所以直接sizeof(像拷贝的长度)
struct s arr3[] = { {"张三",10},{"李四",40}};
struct s arr4[2] = { 0 };
memcpy(arr4,arr3,sizeof(arr3));
return 0;
}
memmove 内存移动
memcmp 内存比较
memset 内存设值
|