c語言統計字元串出現次數
❶ 用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;
}
程序運行結果如下:
(1)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)
{
{
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語言:編程統計字元串s在字元串str中出現的次數
以下是 C 語言實現統計字元串 s 在字元串 str 中出現的次數的程序:
```c
#include <stdio.h>
#include <string.h>
// 統計字元串 s 在字元串 str 中出現的次數
int countSubstring(char str[], char s[]) {
int n = strlen(str); // 獲取字元串 str 的長度
int m = strlen(s); // 獲取字元串 s 的長度
int count = 0; // 計數器,初始化為 0
for (int i = 0; i <= n - m; i++) {
// 檢查字元串 str 中以 i 開頭、長度為 m 的子串是否等於 s
if (strncmp(str + i, s, m) == 0) {
count++; // 如果相等,則計數器加 1
}
}
return count;
}
int main() {
char str[100], s[100];
printf("請輸入兩個字元串:");
scanf("%s%s", str, s);
int count = countSubstring(str, s);
printf("%s 在 %s 中出現的次數是:%d\n", s, str, count);
return 0;
}
```
在上述代碼中,我們首先定義了一個 `countSubstring()` 函數,該函數接受兩個字元串作為參數,並返回字元串 `s` 在字元鉛喚串 `str` 中出現的次數。在函數內部,我們使用一個循環依次檢查 `str` 中每個長度為 `m` 的子串是否等於 `s`,如果相等,則計數器加 1。需要注意的是,在比較子串是否相等時,我肢激毀們歷備使用了 `strncmp()` 函數,它可以指定要比較的字元數,避免了因為字元串長度不同而導致的錯誤。
在 `main()` 函數中,我們首先使用 `scanf()` 函數獲取用戶輸入的兩個字元串,並將其保存到字元數組 `str` 和 `s` 中。然後,我們調用 `countSubstring()` 函數,並傳入兩個字元串作為參數,以獲取字元串 `s` 在字元串 `str` 中出現的次數。最後,我們輸出結果到控制台中。
需要注意的是,在實際應用中,可能需要對用戶輸入進行驗證和處理,以確保程序的健壯性和安全性。另外,也可以使用其他方法(如標准庫函數)來實現統計字元串出現次數的演算法。