用c语言编写串拷贝函数 用c实现一个字符串拷贝函数

c语言 编写函数:字符串的复制 之一char* str_cpy(str,s)
{ int i;
for (i=0; i(1+strlen(s)); i++)// +1意思是连终止符也一块抄
str[i]=s[i];
return str;
}
C语言编写函数:字符串的复制用c语言编写串拷贝函数你这个拷贝函数里怎么没有主函数里用c语言编写串拷贝函数的n来判断哪些拷贝过来?
我加了个n,把原来的n改成了m,再加了两条语句,其他的没动 , 代码如下用c语言编写串拷贝函数:
#includestdio.h
#define
MAX_STR_LEN
100
char
*
【用c语言编写串拷贝函数 用c实现一个字符串拷贝函数】str_cpy(int
n,char
*
t,
char
*
s)
{
int
i=0,m;
while(*s!='\0')
{
*t=*s;
t++;
s++;
i++;
}
for
(m=i;m0;m--)
{
t--;
if(mn)
*t='\0';
//把超过长度n的都变成结束符'\0'
}
return
t;
}
C语言中如何编写一个字符串复制函数 , 并在主函数中调用它 。#includestdio.h
char *custom_cpy(char *to,char *from);
int main(int argc,char *argv[]){
char *from = "i like c langanger";
char to[30];
char *ptr = custom_cpy(to,from);
printf("%s,%s\n",ptr,to);
return 0;
}
char *custom_cpy(char *to,char *from){
if(to == NULL || from == NULL){
return NULL;
}
char *p = to;
for(;*from!='\0';from++,to++){
*to = *from;
}
*to = '\0';//拷贝完毕之后一定要加一个结束符号
return p;
}
扩展资料:
字符串相关函数应用:
1. 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn 。
例:concat(‘11’,'aa’)='11aa’;
2. 求子串 。Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串 。
例:copy(‘abdag’,2,3)=’bda’;
3. 删除子串 。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串 。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’;
4. 插入子串 。过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’;
5. 求字符串长度 length(s) 例:length(‘12abc’)=5;
参考资料:
百度百科-字符串
C语言 , 使用函数实现字符串复制1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include stdio.h
#include time.h
/*把从src地址开始的字符串复制到以dest开始的字符串中*/
char* strcopy (char* dest, char *src) {
char* r = dest;
while((*r++ = *src++)!='\0');
return dest;
}
int main () {
char *str1="abcde";
char *str2;
str2 = strcopy (str2, str1); /*把str1复制到str2*/
puts (str2);
return 0;
}
C语言实现字符串拷贝函数的几种方法首先是使用库函数
比如下面代码
void ourStrCopy(char S1[] , char S2[]){strcpy(S1, S2); //该函数还有另一个版本可以按长度截取 }
还有一个函数是memcpy,这个是内存拷贝 , 原型是
void memcpy(void *dest, const void *src, size_t n); 需要注意的是这个函数第一个和第二个指针都是void型且第二个指针不能被修改,第三个参数是需要拷贝的内存长度按字节记 。
然后是用指针引用,注意这个并非赋值,而是引用,这种操作需要注意内存 。
char s1[] = "abcdefg";//定义一组字符串char *s2 = s1;//按照指针拷贝字符串
第三种方法就是直接赋值了
void outStrCopy(char s1[] , char s2[]){int len1 = strlen(s1);//获取第一个字符串的长度int len2 = strlen(s2);//获取第二个字符串的长度int len = 0;//字符串总长度if(len1 = len2){len = len2;//选择COPY的长度}else{len = len1;}for(int i= 0 ; ilen ; i++){s1[i] = s2[i];//实现数据拷贝}}

推荐阅读