使用atoi和char

时间:2010-05-26 18:31:43

标签: c atoi

有没有办法在C中将char转换为字符串?

我试图这样做:

   char *array;

   array[0] = '1';

   int x = atoi(array);

   printf("%d",x);

6 个答案:

答案 0 :(得分:22)

char c = '1';
int x = c - '0';
printf("%d",x);

答案 1 :(得分:6)

如果您正在尝试将数字字符转换为int,只需使用字符算术来减去ASCII代码:

int x = myChar - '0';
printf("%d\n", x);

答案 2 :(得分:5)

您需要为字符串分配内存,然后null终止。

char *array;

array = malloc(2);
array[0] = '1';
array[1] = '\0';

int x = atoi(array);

printf("%d",x);

或者,更容易:

char array[10];

array = "1";

int x = atoi(array);

printf("%d",x);

答案 3 :(得分:3)

怎么样:

   char arr[] = "X";
   int x;
   arr[0] = '9';
   x = atoi(arr);
   printf("%d",x);

答案 4 :(得分:2)

您可以通过以下方式将字符转换为字符串:

char string[2];
string[0] = '1';
string[1] = 0;

字符串以NUL字符结尾,其值为0.

答案 5 :(得分:0)

atoi 函数的声明是(它等待一个“字符串”):

int atoi(const char * str)

如果你打算用一个字符来使用它,你会得到一个segmentation fault,因为函数试图读取内存直到它找到'\0'

E。 G。试试这个:

char char_digit = '5';
char string_for_atoi[2] = { char_digit, '\0' };

int number = atoi(string_for_atoi);