麻烦在字符串中查找字符的位置

时间:2019-06-13 14:40:56

标签: c

我的函数返回的值不正确。

我试图在主要功能中执行此代码,并且可以正常工作

int f_char(char a[], char l)
{
    int pos= 0;
    for(int i=0; a[i]!='\0'; i++)
    {
        if(a[i]==l){
            pos= i+1;
            break;
        }
    }
    return pos;
}

int main()
{
    char a[256]= "Hola";
    char l= 'l';

    f_char(a, l);
    printf("%c is in the position %d", l, f_char);
    return 0;
}

预期结果是:

  

l位于3位

但这给了我

  

l位于4199401位置

1 个答案:

答案 0 :(得分:1)

我认为该功能没有问题。


#include<stdio.h>
int f_char(char a[], char l)
{
    int pos= 0;
    for(int i=0; a[i]!='\0'; i++)
    {
        if(a[i]==l){
            pos= i+1;
            break;
        }
    }
    return pos;
}

int main(){
    char *sen= "abcd";
    char x = 'c';
   printf("%d", f_char(sen, x));   

    return 0;
}

输出:3