社区
C语言
帖子详情
请问strcpy的两个参数可以是同一个地址么?
CodeMagic
2006-07-03 08:48:05
如题,有相关的函数说明的链接最好,我想知道一下
例如strcpy(str, str+3) 其中str为字符串,这样写是否可行
...全文
675
11
打赏
收藏
请问strcpy的两个参数可以是同一个地址么?
如题,有相关的函数说明的链接最好,我想知道一下 例如strcpy(str, str+3) 其中str为字符串,这样写是否可行
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zez
2006-07-04
打赏
举报
回复
这种问题
你自己为什么不试一下呢???
mLee79
2006-07-04
打赏
举报
回复
MSDN: The behavior of strcpy is undefined if the source and destination strings overlap.
后面往前面拷贝没问题, 跟 memcpy 一样 .....
jixingzhong
2006-07-04
打赏
举报
回复
strcpy的两个参数可以是同一个地址么
===================
这个应当是标准未定义行为, 结果可能不一定...
在C99 标准,对于指针,新增加一个 restrict 修饰符号,
该符号限制了指针对象访问方式,
在 memcpy 等函数参数中使用该修饰,
使得参数必须是不同的对象 ....
(也就是不能够是同一个对象 ...)
daisy122
2006-07-04
打赏
举报
回复
函数名: strcpy
功 能: 串拷贝
用 法: char *strcpy(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
strcpy(string, str1);
printf("%s\n", string);
return 0;
}
逍遥过客
2006-07-03
打赏
举报
回复
这是种很差的用法,不推荐使用!
CodeMagic
2006-07-03
打赏
举报
回复
不过程序没问题好像
哪里有标准c函数strcpy实现的英文说明,我想验证一下
用循环也可以实现,不知道循环的实现是从高位到低位遍历 还是反之
happytang
2006-07-03
打赏
举报
回复
可以,不过数据就被覆盖了,这样损害了原始数据
CodeMagic
2006-07-03
打赏
举报
回复
其实我想实现的是同一字符串中数据的移位操作,想知道strcpy的实现是否支持这样的操作。
Dong
2006-07-03
打赏
举报
回复
例如strcpy(str, str+3) 其中str为字符串,这样写是否可行
-----------------------------------
str可以是char str[..],因为可以是char* str = new char[..];,但就是不可以char* str = "....";
winks
2006-07-03
打赏
举报
回复
可以,只是不会有人这样用
tailzhou
2006-07-03
打赏
举报
回复
可以呀
#include "stdio.h"
#include "string.h"
int main()
{
char str[]="1234567890";
char *sp;
strcpy(str,str+3);
printf("%s",str);
return 0;
}
C:\projects>test
4567890
js异步执行的四种方式
1、回调函数--把同步操作变成异步,f1不会阻塞程序运行,相当于先执行程序的主要逻辑将耗时的延迟执行 function f1(callback){ setTimeout(function(){ //f1的代码 callback(); },1000) } f1(f2); 2、事件监听--f1执行完成后立即触发done事件从而执行f2 f1.on("done".f2); func...
JS原生对象实现异步请求以及JQ的ajax请求四种方式
一、JS原生方式异步请求 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AjaxLogin.aspx.cs" Inherits="ThreeLayerWebDemo._2019_7_6.Ajax.AjaxLogin" %> 2 3 <!DOCTYPE html> 4 5 &...
js等待异步执行完再执行_四种PHP异步执行的常用方式
php中文网最新课程每日17点准时技术干货分享客户端与服务器端是通过HTTP协议进行连接通讯,客户端发起请求,服务器端接收到请求后执行处理,并返回处理结果。有时服务器需要执行很耗时的操作,这个操作的结果并不需要返回给客户端。但因为php是同步执行的,所以客户端需要等待服务处理完才可以进行下一步。因此对于耗时的操作适合异步执行,服务器接收到请求后,处理完客户端需要的数据就返回,再异步在服务...
JS基础要领(promise,异步执行,宏微任务,事件循环,柯里化,async,原型链)
promise原理 function Promise(executor) { var self = this; self.status = 'pending'; //promise当前的状态 self.data = undefined; //promise的值 self.onResolvedCallback = []; //promise状态变为resolve时的回调函数集,可能有多个 self.onRejectedCallback = []; //p
js的四种模块化引入规范
1、AMD AMD是一种加载方式,异步加载模块,不占用主进程的代码执行 AMD规范依赖于requirejs,来完成 模块放在数组一块加载 AMD推崇依赖前置,在定义模块的时候就要声明其依赖的模块,预加载 AMD的执行需要引入require.js文件 API define 定义模块 他有
两个
参数
,第一个用于声明需要加载的依赖模块,他是一个数组; 第二个是模块加载成功后的回调函数,这个回调函数相当于这个模块文件的代码区域,该模块的代码是在这个函数中添加的。回调函数的
参数
依次是每个加载的依赖模块 require.
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章