用c语言编写程序,求出字符串中指定字符的个数,并输出。例如,若输入字符串:a123gk412132,输入字符为:

#include <stdio.h>
#include <conio.h>
int fun(char *p,char c)
{
int i,sum=0;
for(i=0;p[i]!='\0';i++)
{
if(p[i]==c)
sum++;
}
return sum;
}
void main()
{
char a[30],ch;
int b;
clrscr();
printf("please enter a string:\n");
gets(a);
printf("please enter a char:\n");
scanf("%c",&ch);
b=fun(a,ch);
printf("the number of the char is:%d\n",ch,b);
getch();
}
不知道哪错,出不来结果

第1个回答  2011-05-04
编写一函数!
请注意是一个函数,虽然
#include <stdio.h>
void main()
{
int a=0;

printf("please input your number:\n");
scanf("%x",&a);
printf("the result is %d",a);
getch();
}
也可以,但这绝不是题目要求。

#include "stdio.h"
#include "string.h"

long DEC( char *HEX );
int Ture( char *HEX );

void main( void )
{
char HEX[30];
int ture;
clrscr();

do
{
printf("\nPlease input a HEX number blow : \n");
gets( HEX );
if( ture=Ture(HEX) )
printf("\nWrong ! Try Again !");
}while( ture );

printf("\nThe Result is :");
printf(" HEX (%s) = DEC (%ld) ",HEX,DEC(HEX));

}

long DEC( char *HEX )
{
long decvalue=0;
int i=0;

for( i=0 ; i<strlen(HEX) ; i++)
{
if(*(HEX+i)>='A'&&*(HEX+i)<='F')
{
decvalue*=16;
decvalue+=*(HEX+i)-'A'+10;
}
if(*(HEX+i)>='0'&&*(HEX+i)<='9')
{
decvalue*=16;
decvalue+=*(HEX+i)-'0';
}
}

return decvalue;
}

int Ture( char *HEX )
{
int i;
int flag=0;

for( i=0 ; i<strlen(HEX) ; i++ )
{
if((*(HEX+i)>='a')&&(*(HEX+i)<='f'))
{
*(HEX+i)+='A'-'a';
flag++;
}
else if((*(HEX+i)>='A')&&(*(HEX+i)<='F'))
{
flag++;
}
else if((*(HEX+i)>='0')&&(*(HEX+i)<='9'))
{
flag++;
}
else
{
flag--;
}
}

return(strlen(HEX)-flag);
}

你也可以把Ture和DEC合在一块

也可以不要Ture
另外,团IDC网上有许多产品团购,便宜有口碑
第2个回答  2011-05-02
这个clrscr()去掉也可以。
在你最后输出语句中漏掉了一个格式说明符printf("the number of the char is:%d\n",ch,b);应该改为
printf("the number of the char %c is:%d\n",ch,b);
第3个回答  2011-05-15
#include <stdio.h>
#include <conio.h>
int fun(char *p,char c)
{
int i,sum=0;
for(i=0;p[i]!='\0';i++)
{
if(p[i]==c)
sum++;
}
return sum;
}
void main()
{
char a[30],ch;
int b;
clrscr();
printf("please enter a string:\n");
gets(a);
printf("please enter a char:\n");
scanf("%c",&ch);
b=fun(a,ch);
printf("the number of the char is:%d\n",b);
}
第4个回答  2011-05-02
首先,你这是针对字符的,a123gk412132在字符串中混有整型当然不行,第二,你的main函数中的b没有赋初值
第5个回答  2011-05-02
printf("the number of the char is:%d\n",ch,b);
改成
printf("the number of the char %c is:%d\n",ch,b);本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网