Я мог бы предложить это:
#include <stdio.h>
#include <string.h>
int my_atoi(char* operand, int bufsize, int sign)
{
char* value = new char[bufsize+1];
memcpy(value, operand, bufsize);
value[bufsize] = '\0';
int ret = 0;
sscanf(value, "%d", &ret);
if (sign < 0)
{
ret = -ret;
}
delete [] value;
return ret;
}
void main()
{
char Operand[2][4] = {{'1', '2', '3', '4'},{'5', '6', '7', '8'}};
signed int Operand1 = my_atoi(Operand[0], 4, 1);
signed int Operand2 = my_atoi(Operand[1], 4, -1);
signed int Result = Operand1 + Operand2;
}
Однако, я определенно рекомендую вам получить ваши строки как строки с нулевым символом в конце.В этом случае вы можете пропустить ручную реализацию my_atoi и просто сделать:
#include <stdlib.h>
void main()
{
char Operand[2][5] = {{'1', '2', '3', '4', '\0'},{'5', '6', '7', '8', '\0'}};
signed int Operand1 = atoi(Operand[0]);
signed int Operand2 = -atoi(Operand[1]);
signed int Result = Operand1 + Operand2;
}