當前位置:首頁 » 編程語言 » 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;
}