从char到const char的无效转换

时间:2013-11-10 19:40:07

标签: c

所以我得到这个转换问题char到const char。我怎样才能使这段代码起作用? 请不要使用指针,因为我是一个新手,我不知道任何关于他们...谢谢:)

#include<stdio.h>
#include<string.h>
char a[50];
int power(char a) {
    int b;
    b=0;
    if(strlen(a)-b==0)
    return 0;
    else if(a[b]=='x'){
        return power(a,b+1)+1;
    }
    else{
        return power(a,b+1);
    }
    }

}
int main()
{
  scanf("%s",&a);
  printf("%d",power(a));
  return 0;
}

1 个答案:

答案 0 :(得分:1)

power()应该采用数组(或指针,但你要求保留它们,所以...)

并且b需要是一个参数,而不是始终为0的变量。

int power(char a[], int b) {
    if(strlen(a)-b==0)
      return 0;
    else if(a[b]=='x'){
        return power(a,b+1)+1;
    }
    else{
        return power(a,b+1);
    }
}

最后,您的scanf()调用不需要指向数组地址的指针:

int main()
{
  scanf("%s",a);
  printf("%d",power(a, 0));
  return 0;
}