为什么在此代码中出现分段转储错误?

时间:2018-10-26 07:12:54

标签: c

我是c语言的新手,在执行第一个printf语句后遇到分段转储错误。 请帮我解决这个错误。

void main()
{
  char string[10]={};
  char key,used[10];
  int len=0;
  printf("Enter the string :");
  scanf("%s",&string);
  len = strlen(string);
  for (int i =0; i<len;++i)
  {
    int count=0;
    key =string[i];
    printf("%s",key);
    for (int j =0;j<len;++j)
    {
      if (string[j]==key)
      {
        count+=1;
      }
    }
    printf("%s %d",key,count);
  } 
}

1 个答案:

答案 0 :(得分:2)

如评论中所述

scanf("%s",&string);应该是scanf("%s",string);

使用correct format specifier

printf("%s",key);应该为printf("%c",key);//<-----should be %c
printf("%s %d",key,count);应该是printf("%c %d",key,count);//<-----should be %c