Преобразование char в int ’23’ & gt; 23

Я видел очень много постов о том, как преобразовать одну цифру в целое число, но как я могу преобразовать более одного числа в целое число, точно так же, как ’23’ преобразует его в 23;

0

Решение

Чтобы преобразовать массив символов в целое число, используйте atoi(), Если конвертируете строки, добавьте .c_str() после строковой переменной, чтобы преобразовать ее в подходящую форму для использования.

Вы также можете использовать stoi(), который предоставляет некоторые дополнительные функции для преобразования, такие как указание базы.

2

Другие решения

Используйте встроенную функцию СТД :: стои, или напишите свою собственную реализацию, например:

// A simple C++ program for implementation of atoi
#include <stdio.h>

// A simple atoi() function
int myAtoi(char *str)
{
int res = 0; // Initialize result

// Iterate through all characters of input string and update result
for (int i = 0; str[i] != '\0'; ++i)
res = res*10 + str[i] - '0';

// return result.
return res;
}

// Driver program to test above function
int main()
{
char str[] = "89789";
int val = myAtoi(str);
printf ("%d ", val);
return 0;
}

Источник: http://www.geeksforgeeks.org/write-your-own-atoi/

0

По вопросам рекламы [email protected]