strcpy_s函数不是标准函数,是微软的VS特有的,这个函数返回一个整数,0表示复制成功,返回非0值代表复制不成功,不同的值表示不同的错误,具体内容可以查阅MSDN手册
所以你的代码里p=strcpy_s(copy + 7, sizeof(copy) - 7, orig); 是不可行的
根据你的代码改了下:
#include<stdioh>
#include<stringh>
#define WORDS "beast"
#define size 40
int main(void)
{
const char orig = WORDS;
char copy[size] = "Be the best that you can be";
int n = sizeof(copy) - 7;
char p; //p应该是char
printf("%d\n", n);
puts(orig);
puts(copy);
strcpy_s(copy + 7, sizeof(copy) - 7, orig); //不返回指针
p = copy + 7; //p定位到copy+7
puts(copy);
puts(p);
return 0;
}
void sstrcpy(char s,char t)
{
while((s++)=(t++));
}
这样就可以, 在每次执行循环是自动就会将t指向的有效数据进行赋值s, 然后最后的时候就会有null赋给s造成循环不可继续执行, 从而跳出循环 也就完成了字符串的复制
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)