首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请好手解惑

2012-10-26 
请高手解惑#includestdio.hchar *strcpy1(char *strDest,const char *strScr){assert((strDest!NULL)&&

请高手解惑
#include<stdio.h>
char *strcpy1(char *strDest,const char *strScr)
{
assert((strDest!=NULL)&&(strScr!=NULL));
char *address=strDest;
while ((*strDest++=*strScr++)!='\0')
NULL;
return address;
}
void main()
{
  char *strDest="hello";
char *strScr="world";
strcpy1(strDest,strScr);
 
}

[解决办法]
也不知道LZ有什么问题~,,那么我就来说几句~。。

C/C++ code
#include <stdio.h>#include <assert.h>  //要使用断言,请包含assert.h头文件char *strcpy1(char *strDest,const char *strScr){char *address=strDest; //在C语言中,变量声明要放在一切语句之前。。。原来的方法会提示address没声明assert((strDest!=NULL)&&(strScr!=NULL));while ((*strDest++=*strScr++)!='\0');//没有必要加NULL,直接分号空语句,OK        //还有上面的 (*strDest++ = *strScr++)!='\0 中间可能会引起歧义++ 和 += 容易混淆,建议加上空格return address;}void main(){  char *strDest="hello"; //这里的strDest和strScr是字符串常量,放在静态存储区,不可以加以修改,否                  则会发生未定义的现象  char *strScr="world";  strcpy1(strDest,strScr);  } 

热点排行