c语言,从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数

c语言,从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数,第1张

程序设计思路如下:

从键盘分别输入字符和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较,如相同,则让计数器加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()输入字符串的字符个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9647931.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存