社区
C语言
帖子详情
我的strcpy程序错在哪里啊?谢谢
zxwitsme
2003-11-19 11:50:17
int strcpy(char *des,char *res)
{
while(*(des++)=*res++!='\0')
;
return 1;
}
...全文
34
13
打赏
收藏
我的strcpy程序错在哪里啊?谢谢
int strcpy(char *des,char *res) { while(*(des++)=*res++!='\0') ; return 1; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
晨星
2003-11-19
打赏
举报
回复
赋值运算符优先级低于关系运算符,所以你的
*des++ = *res++! = '\0'
相当于:
*des++ = (*res++!='\0');
应改为:
(*des++ =*res++) != '\0';
此外,++的优先级本来就比*高,这里没必要加括号。
但注意,++的优先级高并不代表*des++返回的是++后的内容,优先级高仅仅意味着可以不加括号,而并不意味着后自增的语义——返回自增前的值——会改变。
sunliwen780502
2003-11-19
打赏
举报
回复
int strcpy(char *dest, const char *src)
{
while(*src!='\0')
{
*dest = *src;
*dest++;
*src++;
}
*dest = '\0';
return dest;
}
yonyon
2003-11-19
打赏
举报
回复
while(*(des++)=*res++!='\0')
改为
while((*(des++)=*res++)!='\0')
或
while(*(des++)=*res++)
要知道,!=的优先级高于赋值=
Meyer
2003-11-19
打赏
举报
回复
while(*(des++)=*res++!='\0')
赋值操作的优先级低于比较操作
你的句子拆开是
*(des++) = (*res++ != '\0')
还有是返回内型和常用的做法不同
不支持链式操作 如:
strlen(strcpy(destinct, src));
arfi
2003-11-19
打赏
举报
回复
while(*des++ = *res++); //这一句就够了
1cs1ak1
2003-11-19
打赏
举报
回复
int strcpy(char *des,char *res)
{
while(*(des++)=*res++)
;
*des = 0;
return 1;
}
ryyy
2003-11-19
打赏
举报
回复
int strcpy(char *des,char *res)
{
char *tmp = des;
assert( des != NULL && res != NULL );
while((*tmp++=*res++)!='\0')
;
return SUCCESS;
}
KeepCoding
2003-11-19
打赏
举报
回复
char * strcpy( char *des, const char *res)
{
char *tmp = des;
assert( des != NULL && res != NULL );
while ( (*des++ = *res++) == '\0' )
;
return tmp;
}
GR
2003-11-19
打赏
举报
回复
MARK
rexp
2003-11-19
打赏
举报
回复
你的优先级搞错了。
Meyer
2003-11-19
打赏
举报
回复
要是dest长度不够呢?
呵呵这是调用者的责任。
C++的哲学就是大家都是成年人,
都能对自己的事负责。
Nemo1314
2003-11-19
打赏
举报
回复
小弟有个问题!
要是dest长度不够呢?
ilovedonny
2003-11-19
打赏
举报
回复
好贴,高手就是多~
Frescare K21/cortex-M4,系列处理器Bootloader
本工程我原本打算用来移植ucoosiii 而建立的一个简洁的裸机
程序
,后来因为其他项目耽搁了,ucoss iii 部分移植还没有实现。 本裸机
程序
是采用gcc 编译(因为嵌入式开发大部分都是使用gcc 的,而且gcc开发需要我们自己设定链接地址,编译选项编写Makefile等。对于开发者而言绝对有很大好处)。稍后我还会上传教程如何在Windows 搭建gcc环境,和gcc软件。 本
程序
目前实现了以下功能: 1. 实现了用printf 用串口打印。 串口接收还么实现。 2. 封装了通用的中断API,具体使用可以参考定时器中断。 3. 实现了定时器功能。 4. 实现了malloc 功能。 6. 采用独立于编译环境的功能(不依赖与编译环境,模仿uboot),添加了memcopy,
strcpy
,常用功能函数。 本软件同样可在linux 下编译,只需稍微修改一下Makefile。 另外对于在Windows 搭建gcc 编译环境和gcc 软件的请关注我 Windows gcc环境搭建和软件。
谢谢
【算法】C语言
程序
编程模拟实现strlen函数和
strcpy
函数
C语言
程序
编程模拟实现strlen函数和
strcpy
函数(超详细的注释和解释) 先赞后看好习惯 打字不容易,这都是很用心做的,希望得到支持你 大家的点赞和支持对于我来说是一种非常重要的动力 看完之后别忘记关注我哦!️️️ 前言:作者:Yu 常用c
程序
编译器:vs2019** ** 用c
程序
编程实现strlen函数和
strcpy
函数是代码新人对指针基础理解和运用的一个好方法,通过用代码实现strlen和
strcpy
函数可以很好地帮助我们在刚接触c代码时巩固我们自身对代码的理解和提高写代码的能力 库函数里面的
C语言编写
strcpy
函数
#include<stdio.h> char *
strcpy
1(char *dest,char *src); int main(int argc, const char *argv[]) { char a[10]; char b4=“ttt”; char c[5]=“1234”; char *add1=
strcpy
1(a,“ttt”); puts(a); char *add2=
strcpy
1(a,c); printf("%p\n",add1); printf("%p\n",add2); retu
模拟实现string库函数下字符串拷贝函数
strcpy
()
今天来模拟实现
strcpy
()函数,该函数所实现的功能是拷贝字符串 先来分析一下:字符串的拷贝不能使用‘=’直接赋给,而需要调用函数来进行逐个字节的拷贝,函数参数应为两个char类型的指针 下面是我写的初稿: 运行起来没什么问题,但是从软件工程的角度来看,该函数的
程序
健壮性太差,在使用中如果传给_Source为NULL时函数该如何处理?那么就有了以下函数: ...
memset ,memcpy 和
strcpy
的根本区别?
http://www.cppblog.com/junfeng568/archive/2006/03/11/4022.html Memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘\0’; 例:char a[100];memset(a, '\0', sizeof(a)); memset可以方便的清空一个结构类型的变量或数组。
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章