sprintf,strcpy,memcpy使用上有什么要注意的地方?

题目

sprintf,strcpy,memcpy使用上有什么要注意的地方?

参考答案和解析
正确答案: strcpy是一个字符串拷贝的函数,它的函数原型为strcpy(char*dst,constchar*srC.;
将src开始的一段字符串拷贝到dst开始的内存中去,结束的标志符号为’/0’,由于拷贝的长度不是由我们自己控制的,所以这个字符串拷贝很容易出错。具备字符串拷贝功能的函数有memcpy,这是一个内存拷贝函数,它的函数原型为memcpy(char*dst,constchar*src,unsignedintlen);
将长度为len的一段内存,从src拷贝到dst中去,这个函数的长度可控。但是会有内存叠加的问题。
sprintf是格式化函数。将一段数据通过特定的格式,格式化到一个字符串缓冲区中去。sprintf格式化的函数的长度不可控,有可能格式化后的字符串会超出缓冲区的大小,造成溢出。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

请给出如下程序的结果

char szTemp[1000] = "";

int nLen1 = sizeof(szTemp);

int nLen2 = strlen(szTemp);

strcpy(szTemp, "abc");

int nLen3 = sizeof(szTemp);

int nLen4 = strlen(szTemp);

int nTemp[100];

int *pTemp = nTemp;

int nLen5 = sizeof(pTemp);

char szResult[200] = "";

sprintf(szResult, "%d,%d,%d,%d,%02d.", nLen1, nLen2, nLen3, nLen4, nLen5);

则szResult = ____。


正确答案:
 

第2题:

输入二个 64 位的十进制数,计算相乘之后的乘积

已知 strcpy 函数的原型是:

char * strcpy(char * strDest,const char * strSrc);

1.不调用库函数,实现strcpy 函数。

2.解释为什么要返回char *。


正确答案:
 

第3题:

下面程序的输出结果是【】。char b[]="ABCD";main(){char b[30];strcpy(&b[0],"GH");strcpy(&am

下面程序的输出结果是【 】。

char b[]="ABCD";

main()

{

char b[30];

strcpy(&b[0],"GH");

strcpy(&b[1],"GH");

strcpy(&b[2],"GH");

printf("%s\n",b);

}


正确答案:GGGH
GGGH 解析:由于在函数main中定义了数组变量b,其将屏蔽全局变量b。对于一维数纽变量,其值为一常数,等于数组首元素地址。strcpy(&b[0],"GH"),是将字符串"GH"复制到数组b中从首元数开始的空间中,此是b中的字符串为”叫”: strcpy(&b[1], "GH"),是将字符串"GH"复制到数组b中从第二个元素开始的空间中,此是b中的字符串为“GH”。执行第三次strcpy函数后,b中的字符串为"GGGH"。

第4题:

消防蒸汽有什么特性?使用时要注意什么?


正确答案: 消防蒸汽的特性:具有灭火效果好,易操作、开关方便等特点,多用于装置灭火但不能用于自燃点低于蒸汽温度的燃烧物(如二硫化碳等)蒸汽灭火是属于窒息灭火法的一种,将蒸汽释放到燃烧区后,使燃烧区含氧量降低到一定程度,火被熄灭,使用时重点切割火焰,对准火焰根部,将燃烧物与空气隔开。
使用注意事项:(1)、使用前先要排净存水。(2)、不要把蒸汽喷到人身上,以免烫伤。

第5题:

编写 strcpy函数

已知 strcpy函数的原型是

char *strcpy(char *strDest, const char *strSrc);

其中 strDest 是目的字符串,strSrc 是源字符串。

(1)不调用 C++/C 的字符串库函数,请编写函数 strcpy

(2)strcpy能把 strSrc 的内容复制到 strDest,为什么还要 char * 类型的返回值?


正确答案:
 

第6题:

调用函数bbb后,输出是什么

void ccc(int x)

{

char szTemp[10] = "";

x = 2;

sprintf(szTemp, "%d,", x);

afxDump << szTemp;

if(x = 3)

{

int x = 4;

sprintf(szTemp, "%d,", x);

afxDump << szTemp;

}

sprintf(szTemp, "%d,", x);

afxDump << szTemp;

}

void bbb()

{

char szTemp[10] = "";

int x = 7;

ccc(x);

sprintf(szTemp, "%d,", x);

afxDump << szTemp;

}


正确答案:
 

第7题:

void Test(void){char *str = (char *)

malloc(100); strcpy(str, “hello”); free(str); if(str != NULL) { strcpy(str, “

world”); printf(str);}}请问运行 Test 函数会有什么样的结果?


正确答案:
 

第8题:

液力变矩器和液力偶合器在工作原理上有什么相同和不同的地方?


参考答案:它们的共同点都是将发动机机械能通过泵轮变成工作液体的动能,再由涡轮将液体的动能变换成机械能输出。不同点是变矩器增加了导轮的作用,可以改变传递扭矩的状况,因而可以变矩,而偶合器则不改变力矩。

第9题:

现有地漏在使用中需要注意什么?
注意水封的清洁和维护,许多企业都不注意这个问题,新形式的水封大大改进,清洁和维护十分方便;另外,要避免双重水封,它很容易造成排水系统的堵塞,反而导致污染的风险。

第10题:

什么叫卤钨灯?卤钨灯有什么特点?使用卤钨灯要注意哪些事项?


正确答案:充入卤素循环剂的灯叫卤钨灯,在白炽灯的充填惰性气体中加入微量卤素或卤化物而制成的点光源。卤钨灯具有体积小、发光效率高、色温稳定、几乎无光衰、寿命长等优点。卤钨灯辐射出来的热量很大,有时甚至可用来烘烤物体。不能有利回收具有污染。