Tag: 数组

在声明一个字符的数组时是否需要提供空字符?

C中的字符串常量存储为字符数组,而按元素创建这样的数组元素时,是否需要提供空字符。 我需要存储一个字符串常量,比如S[number]= “hello\n” 。 字符串常量在C中存储为字符数组,此外,这样的字符串由空字符’\0’终止。 将短语存储在数组中时,是否需要考虑空字符并分配额外的空间,或者我只需要提及需要存储的字符数?

将值附加到c数组

这是一个非常简单的问题,但我不知道该怎么做。 例如,我有一个名为Array其中包含值[1,2,3,4,5,6] ,我想在数组中添加第七个值7 ,因此它包含[1,2,3,4,5,6,7] 。 有没有这样做的function? 我是否需要包含任何额外的头文件? 任何帮助,将不胜感激。

使用指针声明的数组大小

char c[] = “Hello”; char *p = “Hello”; printf(“%i”, sizeof(c)); \\Prints 6 printf(“%i”, sizeof(p)); \\Prints 4 我的问题是: 为什么这些打印出不同的结果? 不是c[]也声明一个指向数组第一个字符的指针(因此它的大小应该是4,因为它是一个指针)?

如何qsort使用结构的指针数组?

我想按Id的顺序排列一系列指针。 但是由于我缺乏指针经验,qsort无法工作。 typedef struct block{ int Id; char * name; } block; typedef struct { block ** data; int size_array; } database; if( ( database = malloc(sizeof(database)) ) == NULL ) { printf(“Error: malloc failed\n”); exit(EXIT_FAILURE); } if( ( database->data = malloc( sizeof( block * ) * database->size_array ) ) == NULL ) { exit(EXIT_FAILURE); […]

将“整数字符串”转换为整数数组

我正在尝试将一个整数数组传递给我的程序。 有没有更好的方法将其转换为整数? 我目前收到一个错误:“可能无法初始化变量大小的对象” for(i = 0; i < argc; i++) { int arr[i] = atoi(argv[i]); }

在函数调用的参数内定义新函数,数组,结构等

如果你有一个function,采取以下措施: void foo(char **arr); 你怎么能做到以下几点: void foo(char* x[] = { “hello”, “my”, “friend” }); 如果这让您感到困惑,那么在Java中我们通过以下方式做到这一点: public void foo(String[] x); foo(new String[] { “hello”, “my”, “friend” }); 目前,我在C中做了以下我讨厌,因为它看起来很丑: char* myArr[] = { “hello”, “my”, “friend” }; foo(myArr);

当用户在c中输入输入时停止for循环

首先,谢谢你的帮助! 我是C语言的新手(以及一般的编程),我正在尝试编写一个用户输入数据点的程序。 然后将数据点保存在一个数组中,然后可以对它们进行操作。 我被卡住的地方:我希望用户能够输入(几乎)任意数量的点,然后使用各种“关键字”来表示数据输入的结束。 在这种情况下,用户将键入“完成”。 这是我到目前为止所拥有的: #include #include int main(void) { printf(“\n Welcome! \n\n Please enter each data point. Enter ‘done’ when finished.\n\n”); double data[1048]; int i, count; for (i = 1; ;i++) { printf(“Data[%i]: “, i); scanf(“%lf”, &data[i]); if (data[i] == ‘done’) { break; } else { count++; } } } 我试过’返回1;’ ‘打破;’。 每次,程序都能正常运行,直到输入“关键字”,此时我得到: […]

在C中对字符数组进行alpha排序的最简单方法是什么?

我正在寻找一种简单易懂的算法,按字母顺序对C中的字符数组进行排序。

尝试在不使用函数的情况下将C中的大写字符转换为小写字母

我试图将char * argv []数组中的char元素从大写转换为小写而不使用函数。 我想在ascii整数中添加32。 当我尝试将变量作为参数传递时,它将显示整数和,但不显示新的小写字符。 相反,它显示以下输出: letter h, 104 tolower: 136, 码: int i = 0; for(i = 0; argv[1][i] != ‘\0’; i++) { char letter = argv[1][i]; printf(“letter %c, %i\n”, letter, letter); char tolower = argv[1][i]; int lowercase = tolower + 32; printf(“tolower: %i, %c\n”, lowercase, lowercase); } 为什么要打印“?” 炭?

Python ctypes:在c中调用具有自定义类型的函数

我正在尝试将预先存在的c代码包装在Linux中用于Python。 我对c的经验不多,而且我正在使用ctypes解决这个问题。 我的C函数需要一个带有自定义类型条目的二维数组,我不知道如何在python中重新创建它以将其传递给c函数。 这是我试图调用的函数: void usbBuildGainTableAI_USB1808(libusb_device_handle *udev, Calibration_AIN table[NCHAN_1808][NGAINS_1808]) { int i, j; uint16_t address = 0x7000; // base address of ADC calibration coefficients. for (i = 0; i < NCHAN_1808; i++) { for (j = 0; j < NGAINS_1808; j++) { usbMemAddressW_USB1808(udev, address); usbMemoryR_USB1808(udev, (uint8_t *) &table[i][j].slope, sizeof(float)); address += 4; usbMemAddressW_USB1808(udev, address); usbMemoryR_USB1808(udev, […]