我可以printf在控制台,但它给这样的警告当它运行:

myStrTod.c|29|warning: "assignment discards 'const' qualifier from pointer target type"|

#include

float myStrTod(const char * nPtr, char ** endPtr);

int rakamMi(int c);

int main()

{

float d;

const char *string = "51.2% kabul edildi";

char *stringPtr;

d = myStrTod(string,&stringPtr);

printf("%.3f %s\n",d,stringPtr);

return 0;

}

float myStrTod(const char * nPtr, char ** endPtr)

{

char s1[20],s2[50];

int i,j,k = 0,pnt,y = 1,num1 = 0,num2= 0;

float f1,f2;

for(i = 0; nPtr[i]; i++){

if(rakamMi(nPtr[i]) || nPtr[i] == '.')

s1[i] = nPtr[i];

else break;

}

j = i;

for(; nPtr[i]; i++)

endPtr[i - j] = nPtr + i;

for(i = 0; s1[i]; i++)

if(s1[i] == '.'){

pnt = i;

break;

}

for (i = 0; s1[i]; i++)

{

if(i < pnt) num1 = num1 * 10 + (s1[i] - 48);

else if (i == pnt) continue;

else{

num2 = num2 * 10 + (s1[i] - 48);

++k;

}

}

for(i = 1; i <= k; i++)

y = y * 10;

f1 = num2/(float) y;

f2 = num1 + f1;

// endPtr = s2;

return f2;

}

int rakamMi(int c)

{

if(c >= 48 && c <= 57)

return 1;

else

return 0;

}

2016-12-02

M.said

+0

请从编译器发布整个错误/警告消息。 –

+1

来吧人们,至少尝试一下。你有没有在你的位置使用搜索引擎?这是您的错误消息的第一个结果:(http://stackoverflow.com/questions/3479770/warning-assignment-discards-qualifiers-from-pointer-target-type) –

+0

这不是答案。我担心这一点,但是当我将const char改为char时,它仍然给出错误。 –

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐