程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> (c語法百題22)統計字符,語法22

(c語法百題22)統計字符,語法22

編輯:關於C語言

(c語法百題22)統計字符,語法22


知識點: 數組的運用,結合循環

getchar()的用法

注意:對於數組a[1000],沒有a=getchar()然後就把字符一個一個裝進數組裡面,這是錯誤的。

還有scanf("%s”,a);也不是正確的。

 

 

內容: 輸入若干個字符(以‘#'作為結束),計算輸入的字符中字母‘a'或‘A’出現的次數。

輸入說明:

一行若干個字符。

輸出說明:

一個整數,為a或者A字符出現次數和。

輸入樣例: abcdefABCDEFaaAA#

輸出樣例 : 6

 

 1 #include <stdio.h>
 2 int main()
 3 {
 4  char a[500];
 5  int i,s=0;
 6  for (i=0;i<500;i++)
 7  {
 8   a[i]=getchar();
 9   if(a[i]==65||a[i]==97)
10   {
11    s+=1;
12   }
13   if(a[i]==35)
14   {
15    break;
16   }
17  }
18  printf("%d\n",s);
19  return 0;
20 }

 


統計字符串中各字符的個數 C

#include<stdio.h>
#include<stdlib.h>

void main()
{
char s[200];
int m[200][2];
int i,j,k,n,l;
printf("please enter a string\n");
scanf("%s",s); // 有空白字符串行用 gets 輸入,無空白字符串用scanf
l = strlen(s);
n=1;
m[n][0]=s[0];
m[n][1]=1;
for (i=1;i<=l;i++){
for (j=1;j<=n;j++)
{
if (s[i]== (m[j][0] & 0xff) ) {m[j][1]++; goto Lab;};
};
n++;
m[n][0]=s[i];
m[n][1]=1;
Lab:;
}
// 如果要按ASCII值大小排列則做:
for (i=1;i<n-1;i++)
for (j=i+1;j<n;j++)
if (m[i][0] > m[j][0]){
k = m[i][0]; m[i][0]=m[j][0];m[j][0]=k;
k = m[i][1]; m[i][1]=m[j][1];m[j][1]=k;
}

for (i=1;i<n;i++) printf("%c=%d ",m[i][0],m[i][1]);

exit(0);
}
 

c 統計字符個數

#include <string.h>
#include <stdio.h>
void fun(char s[],int num[]) /*逗號*/
{int i;
for(i=0;i<strlen(s);i++)
{if(s[i]<='9'&& s[i]>='0')
num[0]++;
if(s[i]<='Z' && s[i]>='A')
num[1]++;
if(s[i]<='z' && s[i]>='a')
num[2]++;
if(s[i]==' ')
num[3]++;
}
printf("Number Large letter Small letter Null\n");
for(i=0;i<4;i++)
printf("%11d",num[i]);
}
main()
{int num[4]={0,0,0,0};char s[200]; /*限定數組長度,在主函數定義*/
gets(s);
fun(s,num); /*指針調用不用加長度*/
}
我運行可以
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved