首先,指针默认只有一个地址的长度的空间,存不了那么多的字符。
创新互联专注于远安企业网站建设,响应式网站开发,购物商城网站建设。远安网站建设公司,为远安等地区提供建站服务。全流程定制网站设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
其次,传值和传地址一塌糊涂,完全就是乱写么。
scanf的第二个参数是地址,如果本身不是指针则需要取址符。
我给你重写了算了
#includestdio.h
int Retrieve(int array[],int length,int x);/*形参x直接传值就可以了*/
int main()
{
int *a,x;
int length,i;
scanf("%d",length);
a = (int)malloc(sizeof(int)*length); /*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/
C语言中的标准函数库中的strchr()函数可以实现查找字符串中的某个字符。
C语言strchr()函数:
查找某字符在字符串中首次出现的位置
头文件:#include string.h
strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:
char * strchr (const char *str, int c);
【参数】str 为要查找的字符串,c 为要查找的字符。
strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回。
注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个字符也可以被定位。
【返回值】如果找到指定的字符则返回该字符所在地址,否则返回 NULL。
返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为 i,那么返回的地址可以理解为 str + i。
提示:如果希望查找某字符在字符串中最后一次出现的位置,可以使用 strrchr() 函数。
C代码和运行结果如下:
输入5,成功输出了其在给定数组中的下标为4,结果正确,望采纳~
附源码:
#include stdio.h
int search(int a[], int n, int x) { // 返回数组a[]中x的下标
int i;
for (i = 0; i n; i++) {
if (a[i] == x)
return i;
}
return -1; // 数组中没有x则返回-1
}
int main() {
int x, a[10] = {7,9,3,4,5,2,1,6,10,8};
scanf("%d", x); // 用户输入数x
printf("%d ", search(a, 10, x)); // 输出x在数组中的下标
return 0;
}