
看下strcpy()函数用法
voidtest2(){charstring[10],str1[10];inti;for(i=0;i<10;i++){str1='a';输出不确定???为什么?我觉得数组...
void test2() { char string[10], str1[10]; int i; for(i=0; i<10; i++) { str1= 'a';输出不确定???为什么?我觉得数组也是地址,传过去地址的时候相继赋值,只是没到顶,sting溢出了而已,string里面应该还是a啊??
展开
4个回答
展开全部
C语言标准库函数strcpy,把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间。
C语言函数
原型声明:extern char *strcpy(char* dest, const char *src);
头文件:#include <string.h> 和 #include <stdio.h>
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
典型实现:
/**********************
*C语言标准库函数strcpy的一种典型的工业级的最简实现
*返回值:目标串的地址。
*对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。
*参数:des为目标字符串,source为原字符串
*/
char* strcpy(char* des,const char* source)
{
char* r=des;
while((*(des++)=*(source++))!='\0');
return r;
}
/*while((*des++=*source++));的解释:赋值表达式返回左操作数,所以在赋值NULL后,循环停止*/
应用实例
⒈strcpy的实现代码
char * strcpy(char * strDest,const char * strSrc)
{
if ((NULL==strDest) || (NULL==strSrc)) //[1]
throw "Invalid argument(s)"; //[2]
char * strDestCopy = strDest; //[3]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDestCopy;
}
已知strcpy函数的原型是:char * strcpy(char * strDest,const char * strSrc);
C语言函数
原型声明:extern char *strcpy(char* dest, const char *src);
头文件:#include <string.h> 和 #include <stdio.h>
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
典型实现:
/**********************
*C语言标准库函数strcpy的一种典型的工业级的最简实现
*返回值:目标串的地址。
*对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。
*参数:des为目标字符串,source为原字符串
*/
char* strcpy(char* des,const char* source)
{
char* r=des;
while((*(des++)=*(source++))!='\0');
return r;
}
/*while((*des++=*source++));的解释:赋值表达式返回左操作数,所以在赋值NULL后,循环停止*/
应用实例
⒈strcpy的实现代码
char * strcpy(char * strDest,const char * strSrc)
{
if ((NULL==strDest) || (NULL==strSrc)) //[1]
throw "Invalid argument(s)"; //[2]
char * strDestCopy = strDest; //[3]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDestCopy;
}
已知strcpy函数的原型是:char * strcpy(char * strDest,const char * strSrc);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2025-07-02 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
展开全部
str是数组名,也是数组的首地址,你的'a’貌似是一个字符变量,不过也没有定义,变量和地址怎么能复制呢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
感觉应该是
for(i=0;i<8;i++)
{
str1[i]=‘a’;
}
a[9]='\0'
for(i=0;i<8;i++)
{
str1[i]=‘a’;
}
a[9]='\0'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
str1= 'a';
你确定你没写错,而不是*str1= 'a';?
你确定你没写错,而不是*str1= 'a';?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询