Tag: char

为什么ENOUGH就足够了? (将int存储在char数组中)

在关于如何在C中将int转换为字符串 的答案之一 (及其注释)中给出了以下解决方案 char str[ENOUGH]; sprintf(str, “%d”, 42); 在评论中, ENOUGH提到ENOUGH可以在编译时确定: #define ENOUGH ((CHAR_BIT * sizeof(int) – 1) / 3 + 2) 我得到+ 2因为你需要能够显示减号和空终止符但是其他部分背后的逻辑是什么? 特别是CHAR_BIT ?

如何在C中将char数组转换为整数?

如何在下面的代码中将char数组x转换为整数89 ? 谢谢 int main(int argc,char *argv[]){ char y[13] = “0123456789012”; char x[3]; int integer_value; x[0] = y[8]; x[1] = y[9]; x[3] = ‘\0’; integer_value=atoi(x); }

为什么char与signed char或unsigned char不兼容?

我发现C99标准有一个语句,它拒绝类型char和signed char / unsigned char类型之间的兼容性。 C99标准注35: 在limits.h中定义的CHAR_MIN将具有值0或SCHAR_MIN之一,这可用于区分这两个选项。 无论做出何种选择,char都是与其他两种类型不同的类型,并且与两者都不兼容。 我的问题是为什么委员会否认兼容性? 理由是什么? 如果char与signed char或unsigned char兼容,那么会发生什么可怕的事吗?

char *和char 与strcpy()之间的区别

过去几个小时我遇到了一个问题,虽然我明白了。 这是我的麻烦: void cut_str(char* entry, int offset) { strcpy(entry, entry + offset); } char works[128] = “example1\0”; char* doesnt = “example2\0”; printf(“output:\n”); cut_str(works, 2); printf(“%s\n”, works); cut_str(doesnt, 2); printf(“%s\n”, doesnt); // output: // ample1 // Segmentation: fault 我觉得char * / char []有一些重要的东西,我没有来到这里。

如何用C语言获得字符在字母表中的位置?

有没有一种快速的方法来检索C中英文字母中给定角色的位置? 就像是: int position = get_position(‘g’);

如何在C中将float转换为4字节的char?

我想将例如2.45的浮点数转换为4字节的char数组。 所以2.45应该看起来像’@’ ‘FS’ ‘Ì’ ‘Í’这是二进制的ieee表示2.45 = 01000000 00011100 11001100 11001101 ? 我已经解决了这个问题,但它的复杂性很差。 你有什么好主意吗? 谢谢你的好答案。 你能告诉我从char数组回到浮点数的方法吗?

隐式类型转换:如果一个操作数很短而另一个操作数是char,那么char会转换为short吗?

K&R指出,如果任一操作数是int则另一个操作数将转换为int 。 当然,只有在遵循所有其他规则(如long double , float , unsigned int等)之后。 通过该逻辑,如果另一个操作数是int ,则char将转换为int 。 但是如果操作中的最高整数类型是short呢? 现在,显然我不需要显式地将char转换为更大的整数,但我确实想知道,ANSI-C是否处理了char和short之间的隐式转换? K&R没有透露任何相关信息。 说,我有以下几行代码: char x = ‘x’; short y = 42; short z = x + y; 将x转换为short吗? 或者根本没有转换开始? 只是说清楚:我不是在询问是否或如何从char转换为short 。 我只是想知道隐式类型转换会发生什么。

你怎么知道用malloc()分配多少空间?

我是C新手,我来自C#。 我一直在学习内存管理和malloc()函数。 我也遇到过这段代码: char *a_persons_name = malloc(sizeof(char) + 2); 我不明白的是这为a_persons_name分配了多少空间。 是分配2个字符(例如AB)还是别的? 我也知道你有时可以使用malloc “幸运”并使用未分配的空间(这可能导致数据损坏和seg错误)。 那么我怎么知道我分配了多少空间以及我需要多少空间?

如何在C中找到unsigned char *的长度

我有一个变量 unsigned char* data = MyFunction(); 如何找到数据的长度?

C编程:EOF作为一个角色

当为命令控制台编程C时,当你有一个试图使用SCANF向用户输入CHAR变量的函数,并且用户输入CTRL + Z (EOF)并命中输入时会发生什么? 例如: char promptChar() { char c; printf(“Enter a character: “); scanf(“%c”, &c); return c; } 如果用户键入CTRL + Z并按下Enter键,那么promptChar()会返回什么? 因为如果我理解EOF,它就是一个int。