因为你在while循环里scanf读取一次字符,while判断条件中又用getchar()读取一次字符
int i=1; scanf("%c",&str[i]); while(str[i] != '\n') { i++; scanf("%c",&str[i]); }
因为偶数项字符被getchar读取了