C语言#(认识一些库函数)

目录

一、strcpy(长度不受限制)

需要引用头文件

作用:可以将一个数组的字符串拷贝到另外的一个数组里(注意:接收的那个数组要有足够的空间)

 二、strcat(长度不受限制)

需要引用头文件

作用:字符串追加(连接)(注意:被追加的数组要有足够的空间)

不能自己给自己追加,为什么?

\0会被改变,找不到字符串结束标志的\0

 三、strcmp(长度不受限制)

需要引用头文件

作用:比较字符串的大小(比较的是相同位置上字母的大小)(strcmp( )内部要传指针变量,因为strcmp接收的是指针)

               //pa1>pa2,返回-1,pa1,返回1,pa1>

四、strncpy(长度受到限制)

需要引用头文件

作用:可以拷贝字符串,同时可以控制拷贝的长度

五、strncat(长度受到限制)

需要引用头文件

作用:可以追加字符串,同时可以控制追加的长度

格式:strncat(ch1, ch2, int); —(int控制拷贝的字符的多少,ch1,ch2是字符数组)

 六、strncmp(长度受到限制)

需要引用头文件

作用:比较字符串的大小,同时可以控制比较多少个字符(比较的是相同位置上字母的大小)(strcmp( )内部要传指针变量,因为strcmp接收的是指针)

               //pa1>pa2,返回-1,pa1,返回1,pa1>

 七、strstr(长度不受限制)

需要引用头文件

作用:在一个字符串中查找另一个字符串

八、strtok

需要引用头文件

作用:切割字符串

 九、strerror

需要引用头文件 

作用:查看错误的信息

十、perror(扩展)

作用:查看错误信息(比strerror更加方便)


一、strcpy(长度不受限制)

需要引用头文件<string.h>

作用:可以将一个数组的字符串拷贝到另外的一个数组里(注意:接收的那个数组要有足够的空间)

代码段

#define _CRT_SECURE_NO_WARNINGS f
#include<stdio.h>
#include<string.h>

int main()
{
	char ch1[20] = "xxxxxxxxxxxxxxxx";
	char ch2[] = "hello";
	strcpy(ch1, ch2);
	printf("%s", ch1);
	return 0;
}

结果展示

 二、strcat(长度不受限制)

需要引用头文件<string.h>

作用:字符串追加(连接)(注意:被追加的数组要有足够的空间)

不能自己给自己追加,为什么?

\0会被改变,找不到字符串结束标志的\0

代码段

#define _CRT_SECURE_NO_WARNINGS f
#include<stdio.h>
#include<string.h>

int main()
{
	char ch1[20] = "hello ";
	char ch2[] = "world";
	strcat(ch1, ch2);
	printf("%s", ch1);
	return 0;
}

 运行结果

 三、strcmp(长度不受限制)

需要引用头文件<string.h>

作用:比较字符串的大小(比较的是相同位置上字母的大小)(strcmp( )内部要传指针变量,因为strcmp接收的是指针)

例如:      char* pa1 = "abcbd";
                 char* pa2 = "abq";
                 int ret = strcmp(pa1, pa2);//用int接收是因为string返回类型是int

               //pa1>pa2,返回-1,pa1<pa2,返回1,pa1 = pa2,返回0

 代码段

#define _CRT_SECURE_NO_WARNINGS f
#include<stdio.h>
#include<string.h>

int main()
{
	char* pa1 = "abcbd";
	char* pa2 = "abq";
	int ret = strcmp(pa1, pa2);
	if (ret > 0)
	{
		printf("pa1 > pa2");
	}
	else if (ret < 0)
	{
		printf("pa1 < pa2");
	}
	else
	{
		printf("pa1 = pa2");
	}
}

运行结果

四、strncpy(长度受到限制)

需要引用头文件<string.h>

作用:可以拷贝字符串,同时可以控制拷贝的长度

格式:strncpy(ch1, ch2, int);  —(int控制拷贝的字符的多少,ch1,ch2是字符数组)

代码段

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>

int main()
{
	char ch1[20] = "abcdef";
	char ch2[] = "ghijkl";
	strncpy(ch1, ch2, 2);
	printf("%s", ch1);
	
	return 0;

}

运行结果

五、strncat(长度受到限制)

需要引用头文件<string.h>

作用:可以追加字符串,同时可以控制追加的长度

格式:strncat(ch1, ch2, int); —(int控制拷贝的字符的多少,ch1,ch2是字符数组)

代码段

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>

int main()
{
	char ch1[20] = "abcdef";
	char ch2[] = "ghijkl";
	strncat(ch1, ch2, 2);
	printf("%s", ch1);
	
	return 0;

}

运行结果

 六、strncmp(长度受到限制)

需要引用头文件<string.h>

作用:比较字符串的大小,同时可以控制比较多少个字符(比较的是相同位置上字母的大小)(strcmp( )内部要传指针变量,因为strcmp接收的是指针)

例如:      char* pa1 = "abcbd";
                 char* pa2 = "abq";
                 int ret = strcmp(pa1, pa2, int);//用int接收是因为string返回类型是int

               //pa1>pa2,返回-1,pa1<pa2,返回1,pa1 = pa2,返回0

 代码段

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>

int main()
{
	char* p1 = "abcdef";
	char* p2 = "abeabc";
	int ret = strncmp(p1, p2, 2);
	int sum = strncmp(p1, p2, 4);
	printf("%d\n", ret);
	printf("%d\n", sum);
	return 0;
}

运行结果

 七、strstr(长度不受限制)

需要引用头文件<string.h>

作用:在一个字符串中查找另一个字符串

例如:    char ch1[] = "abcdef";
               char ch2[] = "bcd";
               char* ret = strstr(ch1, ch2);(strstr返回的类型是char*)      

代码段

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>

int main()
{
	char ch1[] = "abcdef";
	char ch2[] = "bcd";
	char* ret = strstr(ch1, ch2);
	//在ch1中查找是否包含ch2
	if (ret == NULL)
	{
		printf("没找到\n");
	}
	else
	{
		printf("%s\n", ret);
	}
}

 运行结果

八、strtok

需要引用头文件<string.h>

作用:切割字符串

例如:

    char ch1[20] = "abc#def@ghj$jkl";
    char* p = "#@$";//遇到这些字符时就会切割,就是将其转化为'\0',这些字符是自己定义的
    char tmp[20] = "0";
    char* ret = NULL;
    strcpy(tmp, ch1);//保护ch1不被改变

    ret = strtok(tmp, p);
    printf("%s\n", ret);
    ret = strtok(NULL, p);//NULL就是从上个切割字符被转化的'\0'开始继续找下一个切割的字      符
    printf("%s\n", ret);
    ret = strtok(NULL, p);
    printf("%s\n", ret);

代码段

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>

int main()
{
	char ch1[20] = "abc#def@ghj$jkl";
	char* p = "#@$";//遇到这些字符时就会切割,就是将其转化为'\0',这些字符是自己定义的
	char tmp[20] = "0";
	char* ret = NULL;
	strcpy(tmp, ch1);//保护ch1不被改变

	ret = strtok(tmp, p);
	printf("%s\n", ret);
	ret = strtok(NULL, p);//NULL就是从上个切割字符被转化的'\0'开始继续找下一个切割的字符
	printf("%s\n", ret);
	ret = strtok(NULL, p);
	printf("%s\n", ret);

	return 0;
}

 运行结果

 九、strerror

需要引用头文件<string.h>  <errno.h>

作用:查看错误的信息

例如: FILE* pf = fopen("test.txt","r");//查找test.txt这个文件
            if (pf == NULL)//如果找不到
            {
                printf("%s\n", strerror(errno));//打印错误的信息
                return 1;
            }
            fclose(pf);
            pf = NULL;        

            return 0;

 代码段

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<errno.h>

int main()
{
	FILE* pf = fopen("test.txt","r");//查找test.txt这个文件
	if (pf == NULL)//如果找不到
	{
		printf("%s\n", strerror(errno));//打印错误的信息
		return 1;
	}
	fclose(pf);
	pf = NULL;

	return 0;

}

运行结果

十、perror(扩展)

作用:查看错误信息(比strerror更加方便)

格式:perror("输入你想要查看的操作")

例如:

    FILE* pf = fopen("test.txt","r");//查找test.txt这个文件
    if (pf == NULL)//如果找不到
    {
        //printf("%s\n", strerror(errno));//打印错误的信息
        perror("fopen");
        return 1;
    }
    fclose(pf);
    pf = NULL;

    return 0;

代码段

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<errno.h>

int main()
{
	FILE* pf = fopen("test.txt","r");//查找test.txt这个文件
	if (pf == NULL)//如果找不到
	{
		//printf("%s\n", strerror(errno));//打印错误的信息
		perror("fopen");
		return 1;
	}
	fclose(pf);
	pf = NULL;

	return 0;

}

 运行结果

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值