有没有办法在C中将char转换为字符串?
我试图这样做:
char *array;
array[0] = '1';
int x = atoi(array);
printf("%d",x);
答案 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);