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

c語言統計字元出現的次數

發布時間: 2025-07-01 02:27:24

『壹』 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++)//循環整個串

n++;//自增

p=s;//重新指向子串

break;//退出

char a[81],b[81];//定義兩個字元數組

fgets(b,81,stdin);

printf("找到:%d ",findsub(a,b));

system("pause");

return 0;

}

數據類型:

字元串數據類型是建模在形式字元串的想法上的數據類型。字元串是幾乎在所有編程語言中可以實現的非常重要和有用的數據類型。在某些語言中它們可作為基本類型獲得,在另一些語言中做為復合類型獲得。多數高級語言的語法允許通常用某種方式引用起來的字元串來表示字元串數據類型的實例;這種元字元串叫做「文本」或「字元串文本」。

以上內容參考:網路-字元串

『伍』 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;

}

(5)c語言統計字元出現的次數擴展閱讀:

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

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

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

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

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

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

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

熱點內容
python保留小數 發布:2025-07-01 06:45:34 瀏覽:754
為什麼伺服器有多個ip地址沖突 發布:2025-07-01 06:32:09 瀏覽:623
java的md5演算法實現 發布:2025-07-01 06:23:09 瀏覽:235
android默認的activity 發布:2025-07-01 06:06:12 瀏覽:421
青浦智能密碼鎖開鎖多少錢 發布:2025-07-01 06:02:42 瀏覽:441
編譯內核生成 發布:2025-07-01 05:48:23 瀏覽:618
咖啡壓縮糖 發布:2025-07-01 05:43:58 瀏覽:581
雲搜卡源碼 發布:2025-07-01 05:32:38 瀏覽:543
華為伺服器怎麼查ip 發布:2025-07-01 05:15:18 瀏覽:373
編譯器中的數據結構 發布:2025-07-01 05:10:53 瀏覽:529