与我的程序一样,我需要将包含的数字返回到字符串中 我的程序似乎可行,但可以肯定的是,我需要显示数字。事情是,它看起来像它被困在ascii 例如,如果我的号码是12,我只能显示1068 我希望提示能够显示(与printf或写函数)包含在字符串“ abcd12" 。 总之,这里是我的程序(通常至极显示NBR,每次迭代迭代,而他最终值的值到主):将字符串转换为整数
int my_getnbr(char const *str) {
int i = 0;
int nbr;
int power = 1;
while (str[i] != '\0') {
if (str[i] <= '9' && str[i] >= '0') {
nbr = nbr * power + str[i] + '0';
printf("%d\n", nbr);
power = power * 10;
}
i++;
}
return (nbr);
}
int main() {
int nbr;
nbr = my_getnbr("abcd12");
printf("nbr = %d\n", nbr);
return (0);
}
这表现出未定义的行为,因为'nbr'永远不会被初始化。 – hnefatl
'int nbr = 0; ... nbr = nbr * 10 +(str [i] - '0');'减去''0''(不需要'power') – chux
你把'+'0''代替了' - '0 “'。投票结束为错字。 – dasblinkenlight