我正在尝试将字符串转换为整数并在此之后执行一些算术。
char string[10];
如果字符串只有一个单词,我可以这样做:
string[0]-'0'
如果字符串包含多个字符,如何将其转换为整数。
答案 0 :(得分:4)
最好使用内置函数,但是如果你想手动完成,你需要循环遍历字符串中实际为数字的所有字符。由于这是在base-10中,所以每次循环时只需将累加器乘以10:
int strToInt (const char *str) {
int accumulator = 0;
int sign = 1;
if (*str == '-') {
str++;
sign = -1;
}
while (*str >= '0' && *str <= '9') {
accumulator *= 10;
accumulator += *str - '0';
str++;
}
return accumulator * sign;
}
答案 1 :(得分:1)
int i,ans;
char num[] = "5678";
int l = strlen(num);
ans = 0;
for(i=0;i<l;i++)
ans = ans*10 + (num[i]-'0');
printf("%d\n",ans);