
程序设计思路如下:
从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较,如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数。
#include "stdioh"main()
{ char str[100],ch; /定义str字符串,定义ch用来存放要统计的字符/
int cnt=0,i; /定义cnt用作计数器,初始值为0/
/输入字符串/
printf("请输入字符串:");
gets(str);
/输入要统计的字符/
printf("请输入要统计的字符:");
scanf("%c",&ch);
/对此字符串从头开始逐个与所统计的字符比较,如相同,则让计数器加1,知道字符串整体比较结束为止/
for( i=0;str[i];i++ )
if( str[i]==ch )
cnt++;
/输出结果/
printf("%s串中%c字符的个数是:%d个",str,ch,cnt);
}
很简单了,代码如下:
#include
void
main()
{
char
a[100];
int
i,count=0,flag=1,n=0;
gets(a);//从键盘输入字符串
for(i=0;a[i];i++)
{
if((a[i]>='a'
&&
a[i]<='z')
||
(a[i]>='a'
&&
a[i]<='z'))//判断是不是字符
{
flag=0;//设置字符标志
continue;//返回下一个循环
}
if(!flag)//前面一位是字符,即当前是某个单词字符结束
{
count++;//统计单词个数
flag=1;//设置非字符标志
}
}
i--;
if((a[i]>='a'
&&
a[i]<='z')
||
(a[i]>='a'
&&
a[i]<='z'))
count++;//增加字符串结束的单词
printf("共有%d单词\n",count);
}
直接实现好像不行。
你的输入总是需要被缓存的,由于程序事先不知道你要输入多少个字符(这才是关键),所以应该有一个足够大的空间记录你的输入。如果你非要这么实现的话,假定“足够大”是100吧。
那么程序应该是
char temp[100]; //创建一个足够大的缓存
char data; //你要得到的相应长度的数组
int length; //长度
scanf("%s",temp); //先保存在缓存中
length = strlen(temp); //得到长度
data = (char)malloc(length)); //创建等于输入长度的空间
memcopy(data,temp,length); //复制到新开的空间
然后data就是你要的东西了。
要不然就直接用链表,用getchar函数,输入一个就追加一个。
不过想不通你这么实现的意义是什么。
可用以下方法:
1、用LEN和SUBSTITUTE函数配合计算。示例:假定A1="abcdacad",求a的个数。
公式=len(a1)-len(substitute(a1,"a",)) 这种方法的原理是:用原字符串长度减去删除指定字符后的字符串长度,得到指定字符的数量。
2、用SUMPRODUCT和MID函数计算。如上例,公式为:=SUMPRODUCT(N(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="a"))
公式首先用MID函数将字符串分解为单个元素,再进行一一比对,最后用SUMPRODUCT函数汇总得到结果。
以上就是关于c语言,从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数全部的内容,包括:c语言,从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数、编写C语言程序统计输入字符串的个数、、要怎么样才能得到用gets()或者scanf()输入字符串的字符个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)