#include<stdio.h>
#include<string.h>
int main(){
char a[]={'I',' ','L','O','V','E',' ','C','H','I','N','A'};
char s[12];
strcpy(s, a);
printf("%s\n", s);
return 0;
}
得到结果:I LOVE CHINA?@
显然是不是想要的结果,这只是C-Free编译器,其他编译器(例如VS)可能会出现烫烫烫烫烫之类的字符
想要的结果:I LOVE CHINA
主要是没考虑字符串是以'\0'结尾,应该给复制的字符串的末尾加上'\0'
正确代码:
#include<stdio.h>
#include<string.h>
int main(){
char a[]={'I',' ','L','O','V','E',' ','C','H','I','N','A'};
char s[13];
strcpy(s, a);
s[12]='\0';
printf("%s\n", s);
return 0;
}
正确结果:I LOVE CHINA