编写一个程序,将str2中的字符串拷贝到str1中。拷贝要包括字符串终止符。定义如下:
char str1[10];
char str2[100];
提示:拷贝时检查str1的空间是否足够。不够,则能拷多少拷多少(注意str1中必需有字符串终止符),不能越界。不能使用strcpy
自己写一个拷贝函数,代码如下:
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char* str1, char* str2)
{
assert(*str1 != NULL && *str2 != NULL);
char* p;
p = str1;
while (*str2)
{
*str1++ = *str2++;
}
return p;
}
int main()
{
char str1[] = "my_hello",str2[]=" ";
printf("%s\n",my_strcpy(str1, str2));
}
按题意,供参考:
#include <stdio.h>
void my_strcpy(char* str1, int len1, char* str2, int len2)
{
int i = 0;
while (i < len1-1 && i < len2)
{
*(str1 + i) = *(str2 + i);
i++;
}
*(str1 + i) = '\0';
}
int main()
{
char str1[10], str2[100] ;
int len1 = sizeof(str1) / sizeof(char), len2 = sizeof(str2) / sizeof(char);
gets(str2);
my_strcpy(str1, len1, str2, len2);
puts(str1);
return 0;
}
可以使用strncpy