c语言计数器有关问题

c语言计数器问题
开始用指针判断输入的字符串中有没有某个字母,这个用“if语句”实现了;
后来想在这基础上对某个字母进行计数,一直有问题
main()
{
  int i,s=0;
  char st[20],*ps;
  printf("input a string:\n");
  ps=st;
  scanf("%s",ps);
  {
  for(i=0;ps[i]!='\0';i++)
  s++;
  }
 if(s=0) printf("There is no 'k'.");
 else if(s=1) printf("There is a 'k'.");
 else printf("There are %d 'k's.",s); 
}
不管字符串是什么都运行“s=1”的条件。
求指点~~~

------解决方案--------------------
C/C++ code
if(s==0) printf("There is no 'k'.");
 else if(s==1) printf("There is a 'k'.");
 else printf("There are %d 'k's.",s);