c語言字元串出現的次數
1. c語言編程:輸入一字元串,統計字元串中各個字元出現的頻率
可以先排序,在遍歷統計。
#include<stdio.h>
#include<string.h>
//升序字元串src,然後返回
char*sort(char*src)
{
chartem,len=strlen(src);
for(inti=0;src[i];i++)
{
for(intj=0;j<len-i-1;j++)
if(src[j]>src[j+1])
{
tem=src[j];
src[j]=src[j+1];
src[j+1]=tem;
}
}
returnsrc;
}
intmain()
{
charstr[1000],ch;
inti=0,cnt;
printf("inputastring:");
gets(str);
sort(str);//排序
ch=str[0];
cnt=1;
for(i=1;str[i];i++)//遍歷統計
{
if(str[i]!=ch)
{
if(cnt)
printf("%chas%d. ",ch,cnt);
ch=str[i];
cnt=1;
}
else
cnt++;
}
if(cnt)
printf("%chas%d. ",ch,cnt);
return0;
}
2. 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` 中出現的次數。最後,我們輸出結果到控制台中。
需要注意的是,在實際應用中,可能需要對用戶輸入進行驗證和處理,以確保程序的健壯性和安全性。另外,也可以使用其他方法(如標准庫函數)來實現統計字元串出現次數的演算法。
3. c語言,輸入一個字元串,計算某字元出現次數
可以吵腔參考下面的代碼拍悄:
#include <stdio.h>
#include <string.h>
voidmain()
{charc,s[80];inti,k=0;
gets(s);/*輸入字元串*/
printf("Pleaseinputacharacter:");c=getchar();
for(i=0;s[i]!='