《C程序设计语言》P104
#include <stdio.h>
/*strcpy(s, t) 将t指的字符串复制到s指的位置, 数组下标版*/
void strcpy(char*, char*);
int main()
{
char s[] = "yjy";
char t[] = "girl";
strcpy(s, t);
printf("%s\n", s);
return 0;
}
void strcpy(char *s, char *t)
{
int i, j;
for(i = 0, j = 0; (s[i] = t[j]) != '\0'; i++, j++)
;
// s[i] = '\0'; //此时这句赋值不需要,因为在上面的循环中,是赋值之后和‘\0’比较的;但若不是这样的方法,则需要另考虑。
}
#include <stdio.h>
/*strcpy(s, t) 将t指的字符串复制到s指的位置, 指针版*/
void strcpy(char*, char*);
int main()
{
char s[] = "yjy";
char t[] = "girl";
strcpy(s, t);
printf("%s\n", s);
return 0;
}
void strcpy(char *s, char *t)
{
while(*s++ = *t++) //这个循环里不需要和‘\0’作比较,因为循环条件必为整数。
;
// *s = '\0'; 由于已经在循环条件里作了此赋值,则不需要再次赋值。
}