从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数相关的知识,希望对你有一定的参考价值。
从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数
程序设计思路如下:
从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较,如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数。
#include "stdio.h"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);
参考技术A #include <stdio.h>
#include <string.h>
#define MAX 100
int main()
char num[MAX]=0;
char c=0;
int len,cnt=0;
scanf("%s %c",num,&c);
len=strlen(num);
while(len--)
if(c==num[len]) cnt++;
printf("%d\\n",cnt);
return 0;
参考技术B #include #include using namespace std;int main()char str[100];cout<<"输入一个字符串"< 参考技术C 主要代码:
char s[1000];
int i,j=0;
scanf("%s",s);
for(i=0;i<1000;i++)
if(s[i]=='*') //for循环查找字符*的数量
j++;//利用变量j计数
从键盘输入一串字符串,统计字符串中特定字符的个数(特定字符需要从键盘输入),并输出个数。 说明?
(1)输入字符串时使用gets函数。
(2)字符串存入一个足够大的字符数组中,保证输入的字符个数不要超过最大个数。
(3)在主函数中输入字符串,通过调用统计函数(strStat,要把字符串和特定字符传给函数)返回特定字符的个数,并在主函数中输出。
(4)统计时使用循环控制语句,需要了解字符数组的结束标志是’\0’,作为循环的结束标志。
(5)输出数据的格式如下: The number of * is *!
例如:
Statistics suggest that the population of this country will be double in ten years //输入的字符串
t //输入的特定字符
The number of t is 11 ! //输出的统计结果
思路:从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较。
如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数,具体代码设计如下:
函数应用
1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’
3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
参考技术A思路:从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较。
如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数,具体代码设计如下:
函数应用
1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’
3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
参考技术B思路:从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较。
如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数,具体代码设计如下:
函数应用
1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’
3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
参考技术C#include <stdio.h>
int strStat(char str[], char search)
int i=0,sum=0;
while(str[i])
if(str[i++]==search)
sum++;
return sum;
int main()
int jieguo;
char sousuo,str[1000];
gets(str);
sousuo=getchar();
jieguo=strStat(str,sousuo);
printf("The number of %c is %d!",sousuo,jieguo);
return 0;
#include <stdlib.h>
//统计函数
int strStat (char *str, char ch)
int n = 0; //统计个数的变量
for (int i = 0; str[i] != '\\0'; i++)
n += (str[i] == ch);
return n;
//main函数
int main (void)
char *s, c;
scanf ("%m[^\\n] %c", &s, &c);
/* %m[^\\n]用来输入字符串s,表示只要不是回车换行符的字符都要读取。(%s不能读取空格)
%c用来输入指定的字符,中间的空格用来匹配stdin中的换行符,以防换行符与%c匹配而被c读走;
格式控制字符串中的m表示根据输入的字符串长度分配足够大小的内存空间,使用完毕后要释放 */
printf ("The number of %c is %d!\\n", c, strStat (s, c)); //调用统计函数,返回结果
free (s);
return 0;
以上是关于从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数的主要内容,如果未能解决你的问题,请参考以下文章
c语言,从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数
C语言编程题:从键盘输入一串字符,统计其中的数字与字母个数并输出
Python中如何从键盘中输入字符串,统计字母,数字,符号和空格的个数?