我可以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时,它仍然给出错误。 –