目录
一、自定义函数实现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++然后停止循环