C语言:编写函数:功能是返回字符串s中的指定字符c的出现次数。

如题所述

int fun(char * str,char c)
{
    int i=0;
    int count=0;
    do
    {
        if(str[i]==c)
        {
            count++;
        }
    }while(str[++i]!=0);
    return count;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-14
int getCount(char s[],char c)
{
   int count=0,i;
   for(i=0;s[i]!='\0';i++)
      if(s[i]==c)
           count++;
   return count;
}

第2个回答  2013-06-14
#include<stdio.h>
int main()
{
char s[80],c;
int i,j=0;
printf("输入字符串:");
gets(s);
printf("输入要查询的字符:");
c=getchar();
for(i=0;i<80;i++)
{
if(s[i]==c)
j++;
}
printf("%c出现的次数为%d次!",c,j);
}
祝你愉快!
第3个回答  推荐于2018-03-22
定义了字符串最大长度80,试试

#include<stdio.h>
#define Max 80
void main()
{
void fun(char s[],char ch[],int count[],int *len);
char s[Max],ch[Max];
int count[Max],len,i;
/*******************************/
gets(s);
fun(s,ch,count,&len);
printf("共有 %d种字符\n",len);
for(i=0;i<len;i++)
printf("字符%c:%2d个\t",ch[i],count[i]);

}
/***************************************/
void fun(char s[],char ch[],int count[],int *len)
{
int i,j,flag,Maxlen;
*len=0;
for(Maxlen=0;s[Maxlen]!='\0';Maxlen++);
/*********************/
for(i=0;i<Maxlen;i++)
{
flag=1;
for(j=0;j<Maxlen;j++)
{
if(s[j]!='\0'&&flag==1)
{
ch[*len]=s[j];
flag=0;
s[j]='\0';
count[*len]=1;
}
else if(flag==0&&ch[*len]==s[j])
{
count[*len]++;
s[j]='\0';
}
}
if(flag==1)break;
(*len)++;
}
}

刚发现,我把题义看错了,原来是求指定字符个数,上面那段是把所有字符全数了一遍
#include<stdio.h>
#define Max 80
void main()
{
int fun(char s[],char ch);
char s[80],ch;
int count;
gets(s);
ch=getchar();
count=fun(s,ch);
printf("字符串 %s 中包含字符 %c 共 %d 个\n",s,ch,count);
}
/**************************/
int fun(char s[],char ch)
{
int i,count;
for(i=count=0;s[i]!='\0';i++)
if(ch==s[i])count++;
return count;
}本回答被提问者和网友采纳
第4个回答  2013-06-14
//打印字符串中每个字符出现的次数

#include<iostream.h>
#include<string>
#define MAX_CHAR_NUM 128//定义长度
void PrintNumOfChars(char str[])
{
int i;
int arr[MAX_CHAR_NUM]={0};
int n = 0;//n为第一次出现的位置
char* p = str[n];
//声明一个指针指向这个字符串,当该指针指向不为空时
while(*p)
{
//出现一次,次数加一次
arr[*p++]++;
}
for(i=0;i<MAX_CHAR_NUM;i++)
{
//如果出现次数不为0
if (arr[i]>0)
printf("%c : %d\n",i,arr[i]);//打印出现次数
break;
}
}
相似回答