#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
static char s1[]="Good";
static char s2[20];
static char s3[20]="Day";
int i = strcmp(strcat(s3,strcpy(s2,s1)),strcat(s3,"good"));
printf("%d\n",i);
return 0;
}
ここで、出力は 0 です。これは、引数として渡された 2 つの文字列strcmp
が等しいことを意味します。しかしstrcmp
、最初の引数は"DaygoodGood"
であり、2 番目の引数は"Daygood"
...
なぜこうなった?