请问C中有返回数组下标的函数吗

来源:百度知道 编辑:UC知道 时间:2024/05/10 10:57:59
我是个新学C语言的菜鸟,想请问下各位大虾C语言中有没有一个函数可以返回一个数组(不管什么类型)元素所在位置的下标值吗?比如定义一个字符数组char cA = {'X','Y','Z'};想返回X元素的数组下标。如没有相关函数,该如何解决呢?

没有此函数
可以如下解决:

搜索数组元素,
for(i;i;i)if(cA[i]=='X')return i;//i就是下标
或用指针
for(i;i;i)if(*cA[i]++ == 'X')return i;
或用指针运算
pcA是元素的位置指针
i= (pcA - cA)/ sizeof( (int) or (float) 等数组数据类型) );

根据数组元素返回该元素在数组中的下标(也就是位置),通常是需要额外的程序代码的。其基本思想是遍历数组,直到找到某个数组元素与待查找的元素匹配。比如你的举例:
char cA[] = {'X', 'Y', 'Z'};
int i;
for(i = 0; i < 3; i++)
if (cA[i] == 'X'}
return i;
如果在数组cA中找到匹配的元素'X',则返回相应的下标。

strrchr()函数可以
使用:
char string[15];
char *ptr, c = 'r';

strcpy(string, "This is a string");
ptr = strrchr(string, c);
if (ptr)
printf("The character %c is at position: %d\n", c, ptr-string);
else
printf("The character was not found\n");
return 0;

不用指针,不用return,完全菜鸟方法,请看:

main()
{int i,I,n,d[11];