第一种:
#include<stdio.h>
#include<iostream>
void copy_string(char* p1, char* p2) {
for (; *p1 != '\0'; *p1++,*p2++)
{
*p2 = *p1;
}
*p2 = '\0';
}
int main() {
char* str1 = (char*) "hello world";
char str2[] = "i am a student";
copy_string(str1, str2);
printf("%s\n",str2);
system("pause");
return 0;
}
第二种:
#include<stdio.h>
#include<iostream>
void copy_string(char* p1, char* p2) {
while ((*p2 = *p1) != '\0')
{
*p2++;
*p1++;
}
}
int main() {
char* str1 = (char*)"hello world";
char str2[] = "i am a student";
copy_string(str1, str2);
printf("%s\n", str2);
system("pause");
return 0;
}
第三种:
#include<stdio.h>
#include<iostream>
void copy_string(char* p1, char* p2) {
//指针运算符比++优先级高
//也就是先将*p1的值给*p2,再进行++操作,i++是先赋值,后自增
while ((*p2++ = *p1++) != '\0')
}
int main() {
char* str1 = (char*)"hello world";
char str2[] = "i am a student";
copy_string(str1, str2);
printf("%s\n", str2);
system("pause");
return 0;
}
第四种:
#include<stdio.h>
#include<iostream>
void copy_string(char* p1, char* p2) {
while (*p1 != '\0') {
*p2++ = *p1++;
}
*p2 = '\0';
}
int main() {
char* str1 = (char*)"hello world";
char str2[] = "i am a student";
copy_string(str1, str2);
printf("%s\n", str2);
system("pause");
return 0;
}
第五种:
#include<stdio.h>
#include<iostream>
void copy_string(char* p1, char* p2) {
//当*p2++ = *p1++变为0时,就会结束循环
while (*p2++ = *p1++) {
; //'\0' == 0;结束标志
}
}
int main() {
char* str1 = (char*)"hello world";
char str2[] = "i am a student";
copy_string(str1, str2);
printf("%s\n", str2);
system("pause");
return 0;
}
第六种:
#include<stdio.h>
#include<iostream>
void copy_string(char* p1, char* p2) {
for (; *p2++ = *p1++;) {
; //'\0' == 0;结束标志
}
}
int main() {
char* str1 = (char*)"hello world";
char str2[] = "i am a student";
copy_string(str1, str2);
printf("%s\n", str2);
system("pause");
return 0;
}
第七种:
#include<stdio.h>
#include<iostream>
void copy_string(char str1[], char str2[]) {
char* p1, * p2;
p1 = str1;
p2 = str2;
while((*p2++ = *p1++)!='\0') {
; //'\0' == 0;结束标志
}
}
int main() {
char* str1 = (char*)"hello world";
char str2[] = "i am a student";
copy_string(str1, str2);
printf("%s\n", str2);
system("pause");
return 0;
}