これは奇妙だと思います。
strtodが入力文字列の文字の1つ(正確には1つ)として「e」を受け入れることは理にかなっていますが、「d」も受け入れることがわかりました。
誰か説明してもらえますか?
#include < stdio.h >
#include < stdlib.h >
int main ()
{
char *s[] = {"1a1", "1e1", "1d1", "1f1"};
char * pEnd;
double d0, d1, d2, d3;
d0 = strtod (s[0],&pEnd);
d1 = strtod (s[1],NULL);
d2 = strtod (s[2],NULL);
d3 = strtod (s[3],NULL);
printf ("::: [%f] [%f] [%f] [%f] \n", d0, d1, d2, d3);
return 0;
}