描述:C语言中对于字符串类型并未定义,但存在许多有关字符串的库函数。
例如:strstr(在原串中匹配子串)strcpy(将原串内容拷贝到目标串中),strncpy(原串内容拷贝到目标串---可控拷贝数), strcmp(比较两个字符串的内容),strcat(字符串的追加)等等,我们可以自己编写程序实现以上功能的函数,而不调用库函数。可以对照库函数进行学习,提高自身的编程能力。
1、模拟strcpy函数(复制字符串)
#include<stdio.h>
#include<assert.h>
#include<string.h>
#include<stdlib.h>
char * my_strcpy(char *dest, const char *src)
{
assert(dest);//判断指针有效性
assert(src);
char *ret = dest;
while (*dest++ = *src++)
;
return ret;
}
int main()
{
char arr[] = "hello world!";
char src[20];
printf("%s\n",my_strcpy(src, arr));
system("pause");
return 0;
}
2、模拟实现strncpy函数(字符串复制-----可控复制字节数量)
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>
char *my_strncpy(char *dest, const char *src, size_t count)
{
assert(dest);
assert(src);
char *ret = dest;
while (count--)//count为要复制的字节数
{
*dest++ = *src++;
}
*dest = '\0';//字符串最后要加上'\0'
return ret;
}
int main()
{
char arr[] = "abcdef";
char