有没有办法在C中将char转换为字符串?
我正在尝试这样做:
char *array;
array[0] = '1';
int x = atoi(array);
printf("%d",x);
char c = '1';
int x = c - '0';
printf("%d",x);
如果您尝试将数字 char 转换为 int,只需使用字符算术减去 ASCII 码:
int x = myChar - '0';
printf("%d\n", x);
您需要为字符串分配内存,然后 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);
怎么样:
char arr[] = "X";
int x;
arr[0] = '9';
x = atoi(arr);
printf("%d",x);
您可以通过以下方式将字符转换为字符串:
char string[2];
string[0] = '1';
string[1] = 0;
字符串以 NUL 字符结尾,其值为 0。
atoi 函数的声明是(它等待一个“字符串”):
int atoi(const char * str)
如果您打算将它与单个字符一起使用,则会出现分段错误,因为该函数会尝试读取内存,直到找到'\0'!
例如。试试这个:
char char_digit = '5';
char string_for_atoi[2] = { char_digit, '\0' };
int number = atoi(string_for_atoi);