我有一个包含 7 个元素的数组,其中包含一些值组合。
例如,我需要将第2个到第4个转换为234 int。
char myarray[5] = {'1','2','3','4','5','6','7'};
int i = atoi(myarray);
printf("%d\n", i);
这样,它返回 int,但所有数组值...1234567
好的,试试这个:
int atoisub(char *s, int start, int end)
{
int rv = 0;
for (int i = start; i < end; ++i) {
rv = rv * 10 + (s[i] - '0');
}
return rv;
}
称呼为
atoisub(myarray, 1, 4)
。不会对非数字字符或无效参数进行错误检查。