您的位置:首页 > 编程语言 > C语言/C++

C语言strcpy_s 和strncpy_s的用法,以及函数实现的方法

2019-04-10 22:15 2967 查看

//strcpy_s 和strncpy_s的用法,以及函数实现的方法
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//用strcpy_s的方法将str2的内容存入str3
//int main()
//{
////复习 声明字符串的三种方法,str数组的形式,str1双引号的形式,str2指针的形式
// /char str[10]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,};
// char str1[]=“abcde”;/
// char str2= “abcde”;
// char str3[10];//声明字符串在没有初始化变量时,需要在方括号中填入元素的个数
//
// strcpy_s(str3,10,str2);//参数顺序(为char类型,则需输入目标函数的地址,=,为char*类型,则需输入源函数的地址)
// printf("%s\n",str3);
// return 0;
//}
//例1用函数的方法实现strcpy_s

//charMystrcpy();
//int main ()
//{
// char str2= “abcdef”;
// char str3[10];
// printf("%s\n",Mystrcpy(str3,str2));
//return 0;
//}
//charMystrcpy(char str4,char* str5)//为了用函数的方法实现strcpy_s,所以这个地方要输入和strcpy_s一样的形参。
//{
// char *Pmark=str4;
// while(*str5 !=0 )//str5代表字符串首元素的地址,间接引用其值是否为0,目的是为了判断有没有到达字符串最后一个字符
// {
// *str4=*str5;//str5间接引用得到首元素的值,然后将值赋给str4首元素的地址
// str4++;//地址偏移,得到下一个元素的地址
// str5++;//地址偏移,为了得到下个元素的地址并间接引用判断是否为 \0,为了将下个元素的值赋给str4的下一个元素
// }
// *str4=’\0’;//字符串的结尾为\0,以上循环无此操作所以需要补上
// return Pmark;
//
//}
//用strncpy_s的方法从源字符串向目标字符串赋值前两个2个字符
//int main ()
//{
// char *str2= “abcdef”;
// char str3[10];
// strncpy_s(str3,3,str2,2);//strncpy_s与strncpy相比多一个目标函数长度,并将最后一个元素赋值为\0
// printf("%s\n",str3);
//return 0;
//}
//例2用自定义函数的方法从源字符串向目标字符串赋值前两个2个字符
char * Mystrncpy();
int main ()
{
char *str2= “abcdef”;
char str3[10];

printf("%s\n",Mystrncpy(str3,str2,2));

return 0;
}
char * Mystrncpy(char* str6,char* str7,int n)
{
char* Pmark= str6;
int i;
for(i=0;i<n;i++)
{
str6[i]=str7[i];
}

return Pmark;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: