【发布时间】:2010-05-26 18:31:42
【问题描述】:
有没有办法在 C 中将 char 转换为字符串?
我正在尝试这样做:
char *array;
array[0] = '1';
int x = atoi(array);
printf("%d",x);
【问题讨论】:
有没有办法在 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)
如果你打算将它与单个字符一起使用,你会得到一个segmentation fault,因为该函数会尝试读取内存,直到找到'\0'强>!
E. G。试试这个:
char char_digit = '5';
char string_for_atoi[2] = { char_digit, '\0' };
int number = atoi(string_for_atoi);
【讨论】: