Tag: 数组

需要从stdin读取未确定数量的整数到数组中

所以我正在编写一个练习程序,它将整数作为stdin的输入,将它们加载到一个数组中,对数组进行排序,然后输出结果。 我一直在努力弄清楚C中IO的工作原理。 这是我到目前为止的情况,如果您发现任何问题/有任何建议,请告诉我。 理想情况下,我想避免使用缓冲区,但我似乎无法找到另一种方法来允许可变大小的输入 输入格式:“10 20 30 11 666 1 235”……等 // check if an input file is specified // If one is specified, then sort those numbers, otherwise pull from stdin if(inputFile == “stdin”){ // Load stdin into a buffer char buffer[100]; if(fgets(buffer, sizeof(buffer), stdin) == NULL) { Handle_EOForIOError(); } // Get a count […]

了解C中的Char数组相等性

提前抱歉无知。 我不完全理解如何比较C中的char数组。我最初将c中的两个char数组与simple ==运算符进行比较。 所以在C函数中,我会做这样的事情。 char *a = “test”; char *b = “test”; if (a == b) ..do something 但我读到我应该使用strcmp而不是==这样。 char *a = “test”; char *b = “test”; if (0 == strcmp(a, b)) ..do something 哪一个是正确的,为什么? 另一个人在做什么?

通过将指针传递给c中的函数来创建2D数组

所以我读了几十个将2D数组指针传递给函数的例子,以便在函数中获取/更改该数组的值。 但是有可能在函数内部创建(分配内存)。 像这样的东西: #include void createArr(int** arrPtr, int x, int y); int main() { int x, y; //Dimension int i, j; //Loop indexes int** arr; //2D array pointer arr = NULL; x=3; y=4; createArr(arr, x, y); for (i = 0; i < x; ++i) { for (j = 0; j < y; ++j) { printf("%d\n", […]

常量对象的常量数组

如何在C(而不是C ++)中定义常量对象的常量数组? 我可以定义 int const Array [] = { /* init data here */ }; 但这是一个非常数对象的非常数。 我可以用 int const * const Array = { /* init data here */ }; 它可能会奏效。 但是有可能用数组语法做到这一点吗? (看起来更干净)

如何在C中正确输入字符串

我目前正在学习C,所以我想创建一个程序,要求用户输入一个字符串并输出输入的字符数,代码编译得很好,当我只输入1个字符就可以了,但是当我输入2个或更多字符,无论我输入的字符数是多少,它总会说只有一个字符然后崩溃。 这是我的代码,我无法弄清楚出了什么问题。 int main(void) { int siz; char i[] = “”; printf(“Enter a string.\n”); scanf(“%s”, i); siz = sizeof(i)/sizeof(char); printf(“%d”, siz); getch(); return 0; } 我目前正在学习编程,所以如果有办法使用相同的scanf()函数,我会很感激,因为我还没有学会如何使用任何其他函数,可能无法理解它是如何工作的。

为什么我们不能将字符串值赋给2d char数组?

#include int main() { char a[3][5]; int i; a[0][5]=”hai”; a[1][5]=”cool”; a[2][5]=”many”; for(i=0;i<3;i++) printf("%s \n",a[i]); return 0; } 为什么我们不能像这样分配字符串值,但它可以使用字符串函数分配?

计算数字在数组中出现的次数

我正在研究一个小程序,它计算整数出现在数组中的次数。 我设法做到了这一点,但有一件事是我无法克服的。 我的代码是: #include int count_occur(int a[], int num_elements, int value); void print_array(int a[], int num_elements); void main(void) { int a[20] = {2, 5, 0, 5, 5, 66, 3, 78, -4, -56, 2, 66, -4, -4, 2, 0, 66, 17, 17, -4}; int num_occ, i; printf(“\nArray:\n”); print_array(a, 20); for (i = 0; i<20; i++) { […]

在c中返回一个数组

我想知道是否有任何方法可以返回一个char数组。 我试过这样的“char [] fun()”,但我收到了错误。 我不想要指针解决方案。 谢谢!

C指针:数组变量

我在书中看到了这一点(以及互联网上的许多消息来源): 数组变量指向数组中的第一个元素。 如果这是真的,那么数组变量和第一个元素是不同的 。 对? 它意味着通过下面的代码,它将产生两个不同的结果: int main(){ char msg[] = “stack over flow”; printf(“the store string is store at :%p\n”,&msg); printf(“First element: %p\n”,&msg[0]); } 但是我收到了两个案例的相同结果。 因此,通过这个例子,我认为我们应该说:数组变量是第一个元素。 (因为它有相同的地址) 我不知道这是真还是错。 请教我。

传递2d数组在C中运行?

我知道这很简单,但我似乎无法做到这一点。 我的function是这样的: int GefMain(int array[][5]) { //do stuff return 1; } 在我的主要: int GefMain(int array[][5]); int main(void) { int array[1800][5]; GefMain(array); return 0; } 我提到了这个有用的资源,但我仍然收到错误”warning: passing argument 1 of GefMain from incompatible pointer type.” 我究竟做错了什么? 编辑: 代码在两个文件中,由编译器链接在一起。 我没有使用gcc。 上面的代码正是我所拥有的,除了函数在main中声明为“extern int”。 谢谢大家的时间。