当前位置:首页 » 编程语言 » c语言统计不同数字字符出现次数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言统计不同数字字符出现次数

发布时间: 2022-05-30 12:13:19

c语言编程。从标准输入设备上输入一个字符串,分别统计其中每个数字,空格,字母及其他字符出现的次数。

代码如下:

#include <stdio.h>

int main(){

char stringss[1024];

int i,num[4]={0};

int j = 0;

char c;

while((c=getchar()) !=' '){

stringss[j] = c;

j++;

}

for(i=0;i<j;i++)//统计字符串,遇到''结束

{

if(stringss[i]>='0'&&stringss[i]<='9')//统计数字个数

num[0]++;

else if(stringss[i]==' ')//统计空格

num[1]++;

else if(stringss[i]>='A'&&stringss[i]<='Z'||stringss[i]>='a'&&stringss[i]<='z')//统计字符

num[2]++;

else

num[3]++;//其他

}

printf("出现的数字%d个,出现的空格%d个,出现的字母%d个,其他字符%d个 ",num[0],num[1],num[2],num[3]);

}

程序运行结果如下:

(1)c语言统计不同数字字符出现次数扩展阅读

C语言中对字符串的统计:可以通过循环数组的方式去一个一个的比较字符,然后进行统计。首先可以通过循环的方式读取每个数字,直到读到换行符“ ”,就结束读取,把读取的字符存到数组中,同时记录下字符的长度,然后进行循环统计,打印出现个数就完成了。

㈡ c语言统计字符串中每个字符出现的次数

#include&lt;stdio.h&gt;

#include&lt;stdlib.h&gt;

int findsub(char*src,char*s)

{

char*ptr=src,*p=s;//定义两个指针

char*ptr2=src+strlen(src),*prev=NULL;//ptr2为src的末位置指针

int len=strlen(s),n=0;//子串的长度和计数器

for(;*ptr;ptr++)//循环整个串

{

if(ptr2-ptr&lt;len)//如果一开始子串就大于src,则退出

break;

for(prev=ptr;*prev==*p;prev++,p++)//寻找第一个相等的位置,然后从此位置开始匹配子串

{

if(*(p+1)==0||*(p+1)==10)//如果已经到了子串的末尾

{

n++;//自增

p=s;//重新指向子串

break;//退出

}

}

}

return n;

}

int main(void)

{

char a[81],b[81];//定义两个字符数组

printf("输入原字符串:");

fgets(a,81,stdin);//输入

printf("输入子字符串:");

fgets(b,81,stdin);

printf("找到:%d ",findsub(a,b));

system("pause");

return 0;

}

(2)c语言统计不同数字字符出现次数扩展阅读:

①printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。

要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。

②printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

㈢ 用C语言编写一个程序,输入一个字符串,统计其中各个字符出现的次数

源程序代码如下:

#include "pch.h"

#define _CRT_SECURE_NO_WARNINGS//VS环境下需要,VC不需要

#include<stdio.h>

int main()

{

char c = 0;//定义输入字符变量

int num_count = 0;//数字个数

int bigalp_count = 0;//大写字母个数

int littlealp_count = 0;//小写字母个数

int emp_count = 0;//空格个数

int els_count = 0;//其他字符个数

while((c = getchar()) != ' ')//连续输入字符直到输入回车结束

{

if((c >= '0')&&(c <= '9'))//判断是否是数字

{

num_count ++ ;

}

else if ((c >= 'a') && (c <= 'z'))//判断是否是小写字母

{

littlealp_count++;

}

else if ((c >= 'A') && (c <= 'Z'))//判断是否是大写字母

{

bigalp_count++;

}

else if(c == ' ')//判断是否是空格

{

emp_count ++;

}

else //判断是否其他字符

{

els_count ++;

}

}

//输出个数统计值

printf("数字个数:%d 小写字母个数:%d 大写字母个数:%d ",num_count, littlealp_count, bigalp_count);

printf("空格个数:%d 其他字符个数:%d ", emp_count, els_count);

return 0;

}

程序运行结果如下:



(3)c语言统计不同数字字符出现次数扩展阅读:

其他实现方法:

#include <stdio.h>

#include <ctype.h> //对空白字符的判断,调用了isspace()函数,所以要调用头文件

int main()

{

char str[20]; //这块对输入有所限制了

int num_count=0;

int space_count=0;

int other_count=0;

char *p=str;

gets(str); //接收字符串

while(*p)

{

if(*p>='0'&&*p<='9')

{

num_count++;

}

else if(isspace(*p)) //用isspace函数来判断是不是空白字符

{

space_count++;

}

else

{

other_count++;

}

p++;

}

printf("num_count=%d ",num_count);

printf("space_count=%d ",space_count);

printf("other_count=%d ",other_count);

return 0;

}

㈣ c语言 随机输入一个字符串,统计该串中每个数字字符(0,1,2,3,4,5,6,7, 8,9)出现的次数。

思路:统计字符串中每个数字字符出现的个数可以先定义一个整数数组a大小是10,依次保存0-9字符出现个数,遍历字符串,判断该字符是否是数字字符,如果是对应的数组元素自加1。
参考代码:

#include<stdio.h>
#include<string.h>
intmain()
{
chara[100];
inti,n,num[10];
gets(a);
n=strlen(a);
for(i=0;i<10;i++){
num[i]=0;
}
for(i=0;i<n;i++)
if(a[i]>=Ɔ'&&a[i]<=Ə')
num[a[i]-Ɔ']++;
for(i=0;i<10;i++)
printf("%d",num[i]);
return0;
}
/*
输出:

2323221234
*/

㈤ 请问c语言当中,如何统计数字各自出现的次数

实现代码:

#include <stdio.h>

int main() {

int num = 0, i = 0;

printf("请输入一个整数:");

scanf("%d", &num);

int array[10] = {};

while(num) {

array[num % 10]++; //让数组下标代表所判断的数字

num /= 10;

}

for (i = 0; i < 10; i++) {

if (array[i] != 0)

printf ("%d有%d个 ", i, array[i]);

return 0;

}

(5)c语言统计不同数字字符出现次数扩展阅读:

printf用法:

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

inta=1234;

printf("a=%d\n",a);

输出结果为a=1234。

㈥ c语言 输入一行字符,统计每个数字字符出现的次数(例如: 0:1次 1:0次 2:5次)

#include<stdio.h>
intmain()
{charc;
inti,a[10]={0};
scanf("%c",&c);
while(c!=' ')
{if(c>='0'&&c<='9')a[c-'0']++;
scanf("%c",&c);
}
for(i=0;i<10;i++)
printf("%d:%d ",i,a[i]);
return0;
}

㈦ C语言如何统计特定字符串出现次数

#include<stdio.h>
intmain(){
charcmp[3]="aba";
chara[256];
scanf("%s",a);
inti;
intcount=0;
for(i=0;a[i]!='';i++){
if(a[i]==cmp[0]){
intj=1;
intsite=i+1;
intflag=1;
for(j=1;cmp[j]!='';j++,site++){
if(a[site]!=''){
flag=0;
break;
}
if(cmp[j]!=a[site]){
flag=0;
break;
}
}
if(flag==1)count++;
}
}
printlf("%d ",count);
}

㈧ C语言如何统计并输出不同字符在文章中出现的次数或频率(空格、换行、标点等也按字符处理)

至于思路嘛,其实也没什么,就是分别进行判断是否数字、字母、空格之类,并和用自增运算符来统计数量。具体看注释。

#include"stdio.h"
void main()
{
int qita=0,english=0,space=0,number=0,i,j;

while((i=getchar())!='\n') /**执行循环,把获得的字符赋给i,直到i等于换行符\n时循环终止**/
{
if(('a'<=i&&i<='z')||('A'<=i&&i<='Z'))
english++; /**如果a<=i<=z或A<=i<=Z,则字母的个数自加一**/
else if('0'<=i&&i<='9') /**如果是0--9之间的数字,则执行下面的number++**/
number++;
else if(i==' ') /**这个是判断空格的**/
space++;
else
qita++; /**这个是统计其他未知字符个数**/
}
printf("english=%d,space=%d,number=%d,qita=%d",english,space,number,qita);
getch();
}

㈨ (C语言)关于统计一行数字字符中每个数字字符出现的次数。

大部分错误都集在中stat方法中,如下:

voidstat(char*s,int*num){
inti;
charch;
ch=s[i];//你上面只是定义了i,从未赋值,i的值就是一个随机数
while((ch=getchar())!=' '){//你前面的indata就已经读入数据到s中了,这里只应该从s中读取并比较它是不是就可以了,而不应该是getchar
if(ch>='0'&&ch<='9')
num[ch-'0']+=1;
}
}
另外一个很重要的错误,你的num数组在使用前也并未初始化,会导至num中的数字也全部是随机的

修改如下

#include<stdio.h>
#defineM10
#defineN10
voidindata(char*s){
inti;
for(i=0;i<M;i++)
s[i]=getchar();
}
voidstat(char*s,int*num){
inti=0;
charch;
ch=s[i];//取第一个元素
for(;i<N;i++)num[i]=0;//num初始化
i=0;
while(ch!=''){
if(ch>='0'&&ch<='9')
num[ch-'0']++;
ch=s[++i];//取下一元素
}
}
voidoutdata(int*num){
inti;
for(i=0;i<N;i++)
printf("%d:%d ",i,num[i]);
}
main(){
intnum[N];
chars[M];
indata(s);
stat(s,num);
printf("Outputtheresult: ");
outdata(num);
}

//当然stat也可以进一步简化,变为
voidstat(char*s,int*num){
inti=0;
charch;
for(;i<N;i++)num[i]=0;
i=0;
while((ch=s[i++])!=''){
if(ch>='0'&&ch<='9')
num[ch-'0']++;
}
}

㈩ C语言统计字符出现次数

#include<stdio.h>
intmain()
{charc;intzm,sz,qt,kg;
zm=sz=qt=kg=c=0;
while(c!='*')
{
scanf("%c",&c);
if(c>='A'&&c<='Z'||c>='a'&&c<='z')zm++;
elseif(c>='0'&&c<='9')sz++;
elseif(c=='')kg++;
elseqt++;
}
printf("zm=%dsz=%dkg=%dqt=%d ",zm,sz,kg,qt);
return0;
}