C语言函数指针
发布网友
发布时间:2022-04-23 09:42
我来回答
共3个回答
热心网友
时间:2023-10-09 21:08
供参考:
//:
strcpyDemo.c
//author:
Problue
#include
<stdio.h>
#include
<assert.h>
/**
*
该函数将从src指向的数组中复制最多count个字符(不复制空字符后面的)到dest指向的数组中。
*
如果复制发生在两个重叠的对象中,则行为未定义。
*
如果src指向的数组是一个长度比count短的字符串,则在dest指向的数组
*
后面添加空字符.直到写入了count个字符。
*@param
dest
目标数组
*@param
src
源数组
*@return
dest
*
*/
char*
strcopy(char*
dest,
const
char*
src,
int
count)
{
char*
sc
=
dest;
assert
((dest
!=
NULL)
&&
(src
!=
NULL));
while
(
0
<
count
&&
*src
!=
'\0')//
复制字符
[max
count]
src
到
dest
[count]
{
*sc++
=
*src++;
--count;
}
for
(;
0
<
count;
--count)
//
写入空字符到dest
{
*sc
=
'\0';
}
return
dest;
}
typedef
char*
(*STR_FUNC)(char*,
const
char*,
int);
int
main()
{
STR_FUNC
func
=
strcopy;
const
int
A_LENGTH
=
30;
char
a[A_LENGTH
+
1];//
=
"abc";
char*
b
=
"defg";
func(a,
b,
A_LENGTH);
puts(a);
puts(b);
getchar();
return
0;
}
热心网友
时间:2023-10-09 21:08
有必要那么纠结吗,
你无非就是把一个复制到另外一个字符串当中。
只要确保目标字符串有容纳的空间,源字符串地址非空,
那是肯定没问题的
热心网友
时间:2023-10-09 21:09
C语言函数前面加个指针 表示函数的返回值是指针类型的。实例: #include using namespace std; int* lpfun1(int,int); //声明一个返回指针为int类型的函数 void main() { int *result=lpfun1(10,20); printf("%d\n",*result); delete result;//删除堆中的指针 result=0; //使指针无效 } int* lpfun1(int x,int y) { int *p=new int(0); *p=x+y; return p; }