简谈几种常用的库函数

一 .为什么会有库函数呢?
1.我们每个人在学习编程语言时,在一个代码写完后总是想迫不及待地将某些语句打印在屏幕上。此时我们总是会调用到printf()这个函数,它可以轻松地帮我们实现预期的功能;
2.在编程过程中我们会频繁地做一些字符串拷贝的工作,会调用到strcpy()函数;
3.在编程中,我们还经常使用scanf()来给某些变量赋值等;
4. …
正如以上几个例子的函数,我们每个程序员都会用到,从而大大提高了开发效率。但由于版权原因,库函数的源代码一般是不可见的,但在头文件里我们可以看到它们对外的接口。
二. 接下来我想和大家分享几个常用且容易混淆的库函数。
1.strcpy()
其作用是将源字符串的内容拷贝到目标字符串里。此函数的返回值为一个字符串,若出错则不会有返回值。函数原型为 char *strcpy( char *strDestination, const char *strSource );调用时要包含<string.h>头文件。
示例代码:
#include<stdio.h>
#include<string.h>

	int main()
{
char string[80]  = { 0 };
strcpy( string, "Hello ! C codes !\n") ;
printf("string[80] = %s" , string) ;
return 0 ;
}
执行结果:
     string[80] = Hello ! C codes !

2.strlen()
该函数作用是计算出某个字符串的长度,返回值为该字符串的字符个数,但不包括字符串结束标志’\0’.函数原型为 size_t strlen( const char *string );调用时要包含<string.h>头文件。
示例代码:

    #include<stdio.h>
    #include<string.h>
     int main()
{
	char string[20] = { 'H' , 'a' , 'p' ,  'p' , 'y' , '\0' } ;
	printf("The length of string[20] is %d\n" , strlen( string) ) ;
	return 0 ;
}

执行结果:
在这里插入图片描述

若将代码改成这样:

#include<stdio.h>
#include<string.h>

int main()
{
	char string[20] = { 'H' , 'a' , 'p' ,  '\0' , 'p' , 'y' , '\0' } ;
	printf("The length of string[20] is %d\n" , strlen( string) ) ;
	return 0 ;
}

执行结果便是:
在这里插入图片描述
这就验证了strlen()函数在统计字符串字符的个数时会把’\0’及其之后的字符不予统计。这点初学者一定要注意到。
3.strcat()
该函数是将两个char型的字符串连接起来。函数原型为 extern char *strcat(char *dest, const char *src);*src中原有的字符不变。返回指向dest的指针。调用时要包含<string.h>头文件。
示例代码:

#include<stdio.h>
#include<string.h>

int main()
{
	char str1[20] = "I Like " ;
	char str2[20] = "C Language.\n" ;
	printf("新字符串为: %s" , strcat(str1 , str2)) ;
	return 0 ;
}

执行结果为:
在这里插入图片描述
这里值得注意的是,strcat()函数将str2里所有的字符(包含’\n’)都拼接到str1里了。
4.strcmp()
该函数是用来比较两个字符串。若str1==str2,则返回零;若str1<str2,则返回负数;它将两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止。若str1>str2,则返回正数。函数原型为 int strcmp( const char *string1, const char *string2 );调用时要包含<string.h>头文件。
示例代码1:

#include<stdio.h>
#include<string.h>

int main()
{
	char str1[20] = "I like C language." ;
	char str2[20] = "I like C Language." ;
	printf("比较结果: %d \n" , strcmp(str1 , str2)) ;
	return 0 ;
}

执行结果1:
在这里插入图片描述
示例代码2:

#include<stdio.h>
#include<string.h>

int main()
{
	char str1[20] = "I like C language." ;
	char str2[20] = "I like C language." ;
	printf("str1 和 str2比较结果: %d \n" , strcmp(str1 , str2)) ;
	return 0 ;
}

执行结果2:
在这里插入图片描述
示例代码3:

#include<stdio.h>
#include<string.h>

int main()
{
	char str1[20] = "I like C Language." ;
	char str2[20] = "I like C language." ;
	printf("str1 和 str2比较结果: %d \n" , strcmp(str1 , str2)) ;
	return 0 ;
}

执行结果3:
在这里插入图片描述
5.strstr()
该函数用来检测str2字符串是不是str1字符串的子串。若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL;函数原型为 extern char *strstr(char *str1, const char *str2);调用时要包含<string.h>头文件。
示例代码1:

#include<stdio.h>
#include<string.h>

int main()
{
	char str1[20] = "I Love China!" ;
	char str2[20] = "Love China!" ;
	printf("strstr(str1 , str2)返回值为: %p\n" , strstr(str1 , str2) );
	return 0 ;
}

执行结果1:
在这里插入图片描述
示例代码2:

#include<stdio.h>
#include<string.h>

int main()
{
	char str1[20] = "I Love China!" ;
	char str2[20] = "love China!" ;
	printf("strstr(str1 , str2)返回值为: %p\n" , strstr(str1 , str2) );
	return 0 ;
}

执行结果2:
在这里插入图片描述

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值