目录
一.C语言字符串库函数
1.如何查看库函数用法
2.C语言字符串库函数
<1>.strcpy
<2>.strncpy
<3>.strcat
<4>.strncat
<5>.strcmp
<6>.strncmp
<7>.strlen
<8>.strset
<9>.memcpy
<10>.memset
<11>.strlwr
<12>.strupr
二.函数指针
一.C语言字符串库函数
1.如何查看库函数用法
拿strcpy举例,
第一步:如下图所示,把光标放在strcpy上按F1
第二步:按F1后会打开msdn,选择中间的windows CE,按显示.
第三步:查看包含的头文件,返回值,参数,不怎么会英文的可以复制到百度里面查看
所有的库函数都可以按以上方式查看,下面介绍几个常用的C语言字符串库函数
2.C语言字符串库函数
<1>.strcpy
strcpy:拷贝字符串
#include "stdafx.h"
#include
int fun()
{
char dest[10];
const char*src="adfsfdv";
strcpy(dest,src);
printf("%stn",dest);
return 0;
}
<2>.strncpy
strcpy:拷贝字符串
#include "stdafx.h" #includeint fun() { char dest[10]; const char*src="adfsfdv"; strcpy(dest,src); printf("%stn",dest); return 0; }
<2>.strncpy
strncpy:将指定长度的字符串复制到字符数组中
int fun()
{
char dest[10];
const char*src="adfsfdv";
strncpy(dest,src,4);
dest[4]=' ';
printf("%stn",dest);
return 0;
}
特别注意dest[4]=' ';字符串都是以' '结束
<3>.strcat
strcat:字符串连接
int fun()
{
char dest[20]="12354";
const char*src="adfsfdv";
strcat(dest,src);
printf("%stn",dest);
return 0;
}
strcat:字符串连接
strcatd注意的是d必须有足够的空间来容纳s的字符串.
<4>.strncat
strncat:主要功能是在字符串的结尾追加n个字符
int fun()
{
char dest[20]="12354";
const char*src="adfsfdv";
strncat(dest,src,3);
printf("%stn",dest);
return 0;
}
strncat:主要功能是在字符串的结尾追加n个字符
这个自动加的' ',不需要自己加,把src所指字符串的前n个字符添加到dest所指字符串的结尾处,并覆盖dest所指字符串结尾的' ',从而实现字符串的连接
<5>.strcmp
strcmp:字符串比较,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1str2,则返回正数
int fun()
{
char str1[5]="abcd";
char str2[5]="1234";
int ret;
ret=strcmp(str1,str2);
printf("%dtn",ret);
return 0;
}
strcmp:字符串比较,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1
上面代码大于0,说明str1大于str2.
<6>.strncmp
strncmp:strncmp 功能是把 str1 和 str2 进行比较,最多比较前 n 个字节
int fun()
{
char str1[5]="abcd";
char str2[5]="abc4";
int ret;
ret=strncmp(str1,str2,3);
printf("%dtn",ret);
return 0;
}
strncmp:strncmp 功能是把 str1 和 str2 进行比较,最多比较前 n 个字节
上面代码比较前3个字节是相等的
<7>.strlen
strlen:测字符串长度
int fun()
{
char str1[5]="abcd";
char str2[5]="abc4";
size_t len;
len=strlen(str1);
printf("%dtn",len);
return 0;
}
<8>.strset
strset:用于返回指向s的指针,把字符串s中的所有字符都设置成字符c
int fun()
{
char str1[5]="abcd";
char str2[5]="abc4";
int ret;
size_t len;
char* value;
value=strset(str1,'F');
printf("%stn",value);
return 0;
}
strlen:测字符串长度
strset:用于返回指向s的指针,把字符串s中的所有字符都设置成字符c
int fun()
{
char str1[5]="abcd";
char str2[5]="abc4";
int ret;
size_t len;
char* value;
value=strset(str1,'F');
printf("%stn",value);
return 0;
}
运行上面的代码就把str1设置成了"FFFF"
<9>.memcpy
memcpy:函数的功能是从源内存地址的起始位置开始拷贝若干个字节到目标内存地址中,即从源source中拷贝n个字节到目标destin中
int fun1()
{
char number[10]={0};//初始化,清零
char*str2="edsfds";
memcpy(number,str2,strlen(str2)+1);
printf("%stn",number);
return 0;
}
memcpy:函数的功能是从源内存地址的起始位置开始拷贝若干个字节到目标内存地址中,即从源source中拷贝n个字节到目标destin中
注意,strlen(str2)+1的目的是要把' '复制上.
<10>.memset
memset:作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。
int fun1()
{
char number[10];
memset(number,0,10);
printf("%dtn",*number);
return 0;
}
memset:作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。
上面两个是内存相关的函数,顺便介绍一下.
<11>.strlwr
strlwr:转换为小写
int fun2()
{
char str[]="ABCDEF";
char* s;
s=strlwr(str);
printf("%sn",s);
return 0;
}
<12>.strupr
strupr:转换到大写
int fun2()
{
char str[]="hijkem";
char* s;
s=strupr(str);
printf("%sn",s);
return 0;
}
二.函数指针
typedef 把类型重新起个名字
函数指针主要用法:
只要知道函数的原型以及函数的地址,那么就可以操纵这个函数
typedef int (*fun_test)(int a,int b);
int fun3(int a,int b)
{
int c;
c=0;
c=a+b;
return c;
}
int main(int argc, char* argv[])
{
int r;
fun_test add;
add=(fun_test)fun3;
r=add(1,2);
printf("%dn",r);
return 0;
}
strlwr:转换为小写
strupr:转换到大写
int fun2()
{
char str[]="hijkem";
char* s;
s=strupr(str);
printf("%sn",s);
return 0;
}
二.函数指针
typedef 把类型重新起个名字
函数指针主要用法:
只要知道函数的原型以及函数的地址,那么就可以操纵这个函数
typedef int (*fun_test)(int a,int b);
int fun3(int a,int b)
{
int c;
c=0;
c=a+b;
return c;
}
int main(int argc, char* argv[])
{
int r;
fun_test add;
add=(fun_test)fun3;
r=add(1,2);
printf("%dn",r);
return 0;
}
typedef 把类型重新起个名字
函数指针主要用法:
只要知道函数的原型以及函数的地址,那么就可以操纵这个函数
上面代码举例,fun3的原型就是int (int a,int b),把函数名字去掉就是它的原型.
定义的时候起个名字,名字前面加颗*,加括号就代表它是函数的指针,fun_test是新定义的函数指针类型.
调用时先定义一个函数指针类型变量 add;获取fun3的地址,获取之前类型不同先强转,然后再调用add.
运行可知和直接调用fun3结果是一模一样的.
今天的文章就到这里了,如果有任何不明白的地方欢迎与我交流,我必定知无不言。这篇文章也花了一定的心血,喜欢的小伙伴可以点赞关注哦。感激不尽!



