當前位置:首頁 » 編程語言 » c語言字元串出現次數

c語言字元串出現次數

發布時間: 2025-05-09 16:35:19

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` 中出現的次數。最後,我們輸出結果到控制台中。

需要注意的是,在實際應用中,可能需要對用戶輸入進行驗證和處理,以確保程序的健壯性和安全性。另外,也可以使用其他方法(如標准庫函數)來實現統計字元串出現次數的演算法

❷ C語言 輸入一個字元串(包含空格),統計每個字元出現的次數和總數(包含空格的次數),並且找出

#include <stdio.h>

int main()

{

unsigned char s[200],a[128]={0},i;

int max=0,maxc;

gets(s);

for(i=0;s[i];i++)

{

a[s[i]]++;

if(a[s[i]]>max)

{

max=a[s[i]];

maxc=s[i];

}

}

for(i=0;i<127;i++)

if(a[i]>0)printf("%c: %d ",i,a[i]);

printf("max:%c--%d times. ",maxc,a[maxc]);

system("pause");

return 0;

}

❸ 用C語言編程:在顯示器上輸入一段字元串,並統計出現字元的個數和各個字元出現的次數

#include <stdio.h>
void main()
{
char c;
int i,letters=0,num[26]={0}; //字元的個數, 26個字元個數初始化為0
printf("請輸入一段字元串:\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
{
letters++;
if(c>='a'&&c<='z') num[c-'a']++;
if(c>='A'&&c<='Z') num[c-'A']++;
}
}
printf("字元的個數:%d\n",letters);
printf("每個字元出現的次數:\n");
for(i=0;i<26;i++)
{
if(num[i]>0)
printf("字元%c:%d次 ",i+'a',num[i]);
}
}

❹ 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;

}

(4)c語言字元串出現次數擴展閱讀:

①printf()函數是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。

格式輸出,它是c語言中產生格式化輸出的函數(在stdio.h中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和數據格式說明組成。

要輸出的文字除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。

簡單點理解就是,在一段程序中你正確使用該函數,可以在該程序運行的時候輸出你所需要的內容。

②printf函數是一個標准庫函數,它的函數原型在頭文件「stdio.h」中。但作為一個特例,不要求在使用printf函數之前必須包含stdio.h文件。

printf()函數的調用格式為:printf("&lt;格式化字元串&gt;",&lt;參量表&gt;)。

其中格式化字元串用於指定輸出格式。格式控制串可由格式字元串和非格式字元串兩種組成。

熱點內容
定投策略演算法 發布:2025-05-09 22:21:36 瀏覽:601
梯形糾正演算法 發布:2025-05-09 22:16:46 瀏覽:717
解壓心跳聲 發布:2025-05-09 22:16:10 瀏覽:718
如何取消安卓手機程序隱私密碼 發布:2025-05-09 21:48:03 瀏覽:48
c語言字元串數組連接 發布:2025-05-09 21:46:37 瀏覽:133
源碼的移碼 發布:2025-05-09 21:25:01 瀏覽:754
ie內核緩存 發布:2025-05-09 21:19:35 瀏覽:545
第五人格伺服器錯誤是怎麼解決 發布:2025-05-09 21:14:24 瀏覽:513
壓縮系數z 發布:2025-05-09 21:01:51 瀏覽:653
雙開助手緩存的文件在哪 發布:2025-05-09 21:01:41 瀏覽:526