当我尝试编译这个时,我总是收到分段错误。我是否需要检查偶数和奇数?我知道这意味着我试图获得我没有的记忆,但我不知道我犯了什么错误。这也是C。保持分段错误(核心转储)
#include<stdio.h>
int main()
{
char str[41], even[21], odd[21], *p, *pstr, *e, *o;
printf("Enter a string (40 characters maximum):");
scanf("%s", str);
*p=str[0];
*pstr=str[0];
for(*p=even[0]; *p != '\0';p++){
if((p-pstr) % 2 == 0){
*e=*p;
e++;
} else{
*o=*p;
o++;
}
}
*o = '\0';
*e = '\0';
printf("The even string is:%s", even);
printf("The odd string is:%s", odd);
return 0;
}
'* p = str [0 ]。 * pstr = str [0];'使用未初始化的变量。 – BLUEPIXY
当你这样做时,你认为'p'指向了什么:'* p = str [0]'? – WhozCraig