Bootstrap

从零开始学习嵌入式----自定义函数实现strcpy与strcat功能

目录

一、自定义函数实现strcpy功能:

二、自定义函数实现strcat功能


一、自定义函数实现strcpy功能:

#include <stdio.h>
void fun(char *p,char *q)
{
   while(*q)
      *p++=*q++;
      *p='\0';
}
int main()
{
    char str[32]="";
    fun(str,"hello");
    printf("%s\n",str);
    return 0;
}

你以为这就完了吗? 

继续优化:

#include <stdio.h>
void fun(char *p,char *q)
{
   while(*p++=*q++);
}
int main()
{
    char str[32]="";
    fun(str,"hello");
    printf("%s\n",str);
    return 0;
}

二、自定义函数实现strcat功能

程序如下:

#include <stdio.h>
char *fun(char *p,char *q)
{
   char *res=p;
   while(*p++);//*p='\0'时退出循环,但指针指向了'\0'后面的第一个地址
   p--;
   while(*p++=*q++);//写成这种形式就不需要单独写命令加'\0'了
   return res;
}
int main()
{
   char syr1[]="hello";
   char str2[]="world";
   char *s=fun(str1,str2) ;
   printf("%s\n",s);
   return 0;
}

while(*p++=*q++)解释 :

       while后括号中的是循环条件。而p和q是指向字符串的指针变量。作用就是将q所指的字符串复制到p所指的字符串上,直到最后将q的字符串结束标志'\0'赋给*P++然后停止循环

;