从键盘输入一串字符串,统计字符串中特定字符的个数(特定字符需要从键盘输入),并输出个数。 说明?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从键盘输入一串字符串,统计字符串中特定字符的个数(特定字符需要从键盘输入),并输出个数。 说明?相关的知识,希望对你有一定的参考价值。

(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;


参考技术D #include <stdio.h>
#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语言,从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数

程序设计思路如下:

从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较,如相同,则让计数器加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

主要代码:

char s[1000];
int i,j=0; 
scanf("%s",s); 
for(i=0;i<1000;i++)

if(s[i]=='*') //for循环查找字符*的数量
j++;//利用变量j计数

追问

可不可以编写完整程序呢?谢谢

追答

基本上把它写入主函数就行了吧

#include<stdio.h>

int main()

  

char s[1000];

int i,j=0; 

scanf("%s",s); 

for(i=0;i<1000;i++)



if(s[i]=='*') //for循环查找字符*的数量

j++;//利用变量j计数

 

printf("指定字符数为%d\\n",j);

return 0;

追问

要输出的是从键盘上输入的一个特定字符的个数,不是*

追答

你把*换成你要求的字符就行了,*只是做个示范。你的意思是我把它改改,加一个从键盘输入特定字符的语句?

追问

不用了,你写的对的,可能我理解错题意了,谢谢了

追答

如你所说,我写了个比较全能的代码,应该更符合题意

#include<stdio.h> 

int main() 

   

char s[1000],sp; 

int i,j=0; 

printf("请输入字符串\\n");

scanf("%s",s);

getchar();

printf("请输入特定字符\\n");

scanf("%c",&sp);

for(i=0;i<1000;i++) 

 

if(s[i]==sp) //for循环查找字符sp的数量 

j++;//利用变量j计数 

  

printf("指定字符数为%d\\n",j); 

return 0; 

本回答被提问者采纳
参考技术B 主要代码:
char s[1000];
int i,j=0;
scanf("%s",s);
for(i=0;i<1000;i++)

if(s[i]=='*') //for循环查找字符*的数量
j++;//利用变量j计数
参考技术C 主要代码:
char s[1000];
int i,j=0;
scanf("%s",s);
for(i=0;i<1000;i++)

if(s[i]=='*') //for循环查找字符*的数量
j++;//利用变量j计数
参考技术D #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;

以上是关于从键盘输入一串字符串,统计字符串中特定字符的个数(特定字符需要从键盘输入),并输出个数。 说明?的主要内容,如果未能解决你的问题,请参考以下文章

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

C语言编程题:从键盘输入一串字符,统计其中的数字与字母个数并输出

Python中如何从键盘中输入字符串,统计字母,数字,符号和空格的个数?

编程序统计从键盘中输入一字符串中大写字母的个数.

用python从键盘输入一个字符串,统计其中大写小写字母以及数字的个数?

统计不同字符个数。用户从键盘输入一行字符,编写一个程序,统计并输出其中英文字符数字空格和其他字符的个数