Tag: 数组

在C中迭代一个数组

嘿,我有这种类型的东西 eph_t *a; 你可以看到类型是eph_t。 它是C中的数组,但我不知道数组的大小,也不知道数组的结束元素是什么。 有没有办法,我可以浏览整个数组,因为我想将数组中每个元素的值赋给某些东西。 我可以选择考虑什么? 如果您无法理解问题中的某些内容,只需发表评论,以便我可以通知您。

取消引用50%的出界指针(数组数组)

这是我的“我不理解C和C ++中的指针”集合中的一个新问题。 如果我将具有相同值的两个指针的位混合(指向相同的存储器地址),那恰好具有完全相同的位表示,当一个是可解除引用且一个是结束时,标准说应该发生什么? #include #include #include // required: a == b // returns a copy of both a and b into dest // (half of the bytes of either pointers) int *copy2to1 (int *a, int *b) { // check input: // not only the pointers must be equal assert (a == b); // also the […]

指针数组 – 外部问题

文件1.c. int a[10]; 文件main.c: extern int *a; int main() { printf(“%d\n”, a[0]); return 0; } 给我一个段错误! 出了什么问题?

将char数组转换为字符串使用C.

我需要将char数组转换为字符串。 像这样的东西: char array[20]; char string[100]; array[0]=’1′; array[1]=’7′; array[2]=’8′; array[3]=’.’; array[4]=’9′; … 我想得到类似的东西: char string[0]= array // where it was stored 178.9 ….in position [0]

C将char数组拆分为不同的变量

在C中如何用分隔符分隔char数组? 或者操纵字符串更好? 有什么好的C char操作函数?

从C中删除字符串中的字符

我只能访问’C’并需要替换字符数组中的字符。 对于这个相对简单的程序,我还没有想出任何干净的解决方案。 我传递了一个字符数组,例如: char strBuffer[] = “/html/scorm12/course/course_index.jsp?user_id=100000232&course_id=100000879&course_prefix=ACQ&version=2&scorm_version=3&roster_id=100011365&course_name=Test%20Course%201.2&mode=browse&course_number=0000&mode_id=1”; 我需要修改此缓冲区以替换所有& 与& 。 生成的缓冲区不必覆盖strBuffer(可以创建新的缓冲区)。 有什么建议? 编辑: 在过去,我已经在循环中完成了strstr函数,但是正在寻找一个更简单的解决方案,可能是C等效于String.Replace方法。 编辑: 对于我的迫切需求,以下是我所需要的一切。 char strBuffer[] = “/html/scorm12/course/course_index.jsp?user_id=100000232&course_id=100000879&course_prefix=ACQ&version=2&scorm_version=3&roster_id=100011365&course_name=Test%20Course%201.2&mode=browse&course_number=0000&mode_id=1″; char strTemp[1024]; char *s = (char*)strBuffer; int i=0; while (*s) { strTemp[i++] = *s; if (strncmp(s,”&”,5) == 0) { s += 5; } else s++; } strTemp[i] = 0; 未来的修改: 创建一个实用程序函数来存储此函数。 将搜索字符串作为参数传递。 确定搜索字符串的长度,因此可以删除硬编码的5。 动态分配strTemp变量。 检查未找到空字符串和字符时出错。 […]

为什么printf()在打印多个字符串(%s)时会留下换行符以及如何解决这个问题?

我制作了一个接受字符串(名字/姓氏)的程序,而不是典型的输出 Phil Snowken 3岁,我快到了 菲尔 Snowken 3岁 #include #define N 10 struct data{ char fname[30]; char lname[30]; int age; }; main() { int i; struct data base[N]; for(i=0;i<N;i++){ printf("\n————————-"); printf("\nPeople Data(%d remaining)\n",Ni); printf("—————————\n\n"); printf("\nFirst Name "); fgets(base[i].fname,30,stdin); printf("\nLast Name "); fgets(base[i].lname,30,stdin); printf("\nAge "); scanf(" %d",&(base[i].age)); fflush(stdin); } for(i=0;i<N;i++) printf("%s %s Year:(%d)",base[i].fname,base[i].lname,base[i].age); return 0; }

如何分配或释放数组的部分?

看这个例子: int *array = malloc (10 * sizeof(int)) 然后只释放前3个街区? 或者制作相同的java,具有负索引的数组,或者不以0开头的索引。 非常感谢。

为什么不能分配相同类型和大小的数组?

如果我声明两个数组 – 例如, arr1和arr2 – ,每个类型为int ,并初始化第一个数组,我希望在arr2创建arr1的副本; 为什么我不能只给出指令arr2 = arr1 ? 我知道可以分配两种相同类型的结构。 为什么不是arrays的情况?

从控制台读取未知长度的字符串

如果我想从命令行读取任意长度的字符串,那么最好的方法是什么? 目前我正在这样做: char name_buffer [ 80 ]; int chars_read = 0; while ( ( chars_read < 80 ) && ( !feof( stdin ) ) ) { name_buffer [ chars_read ] = fgetc ( stdin ); chars_read++; } 但是如果字符串超过80个字符,我该怎么办? 显然我可以将数组初始化为更大的数字,但我确定必须有更好的方法使用malloc或其他东西为数组提供更多空间? 任何提示都会很棒。