當前位置:首頁 » 編程語言 » 輸入一串字元分別統計c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

輸入一串字元分別統計c語言

發布時間: 2022-12-14 13:42:34

1. c語言編寫:輸入任意一串字元串,統計該字元串中出現的字元a的個數,並輸出共統計的個數。

代碼如下:

/*編程從鍵盤輸入一個字元串,統計該字元串中從'a'到'z'共26個小寫字母各自出現的次數,

將結果存入數組中,並輸出*/

#include<stdio.h>

#include<string.h>

#define N 100

main()

{int i,j=0,c[26]={0};

char str[N];

printf("請輸入一個字元串:");

gets(str);

for(i=0;i<strlen(str);i++)/*外循環掃描/遍歷字元數組*/

for(j=0;j<26;j++)

if(str[i]=='a'+j)

{c[j]++;

break;

}

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

printf("%c-%d ",'a'+i,c[i]);/*輸出字母a-z及其出現的次數*/

}

(1)輸入一串字元分別統計c語言擴展閱讀

字元串常量與字元數組的區別

1)字元串常量是一個字元數組,但是內容和長度在初始化時就已經固定了,不可更改;可以通過一個指向字元串常量第一個元素的指針來訪問該字元串常量;

2)字元數組是一個用於存放字元的數組,字元數組的值是可以更改的。

常用字元串函數:

1、復制字元串

C 語言中使用庫函數 strcpy 來進行字元串復制操作:

char *strcpy(char *dst , char const *src);

函數 strcpy 接收兩個字元串參數,並將參數 src 字元串復制到 dst 參數。使用 strcpy 函數時需要注意的是,必須保證目標字元數組 dst 的長度足夠存放源字元數組 src 的內容。

如果 src 比 dst 長,則 src 剩餘部分的字元仍會被復制,而且它們會覆蓋 dst 後面的內存空間的值,如果這除內存空間原本就存放有值,則會導致原本的數據丟失,這樣會造成很嚴重的後果。為了解決這個問題, C 語言中提供了一種更為安全的方式來進行字元串復制操作——strncpy 函數:

char *strncpy(char *dst , char const *src , size_t len);

2、連接字元串

C 語言中使用庫函數 strcat 來連接兩個字元串:

char *strcat(char *dst,char const *src);

函數 strcat 將參數 src 字元串連接到參數 dst 字元串的後面。與 strcpy 函數一個同樣的問題是,必須保證 dst 的剩餘空間足夠存放下 src 整個字元串。C 語言中提供了 strncat 函數來解決這個問題:

char *strncat(char *dst , char const *src , size_t len);

strncat 函數從 src 中最多復制 len 個字元到目標數組 dst 後面,並且,strncat 總是在結果字元串後面添加一個 NUL 位元組,而且不會像 strncpy 函數那樣對 dst 剩餘的空間用 NUL 進行填充。

2. C語言編程題:從鍵盤輸入一串字元,統計其中的數字與字母個數並輸出

#include<stdio.h>

int main()

{

char a[100];

char b[24];

int s[100] = { 0 };//用於存儲字元的個數

gets(a);//輸入字元

//開始比較

for (int x = 0; x < 24; x++)

{

int c = 0;//記錄每個字元個數

b[x] = x + 97;//為了讓b[0]是a,b[1]是b依次類推

for (int i = 0; i < 100; i++)

{

if (b[x] == a[i])

{

++c;

s[x] = c;

}

}

if (s[x]>=1)//只輸出輸入中有的字母 的個數

{

printf("%c %d ", b[x], s[x]);

}

}

getchar();

return 0;

}

(2)輸入一串字元分別統計c語言擴展閱讀:

gets()用法:

gets()函數用來從標准輸入設備(鍵盤)讀取字元串直到回車結束,但回車符

不屬於這個字元串。其調用格式為:

gets(s);

其中s為字元串變數(字元串數組名或字元串指針)。

gets(s)函數與scanf("%s",s)相似,但不完全相同,使用scanf("%s",s)

函數輸入字元串時存在一個問題,就是如果輸入了空格會認為輸入字元串結束,

空格後的字元將作為下一個輸入項處理,但gets()函數將接收輸入的整個字元

串直到回車為止。

示例:

#include&lt;stdio.h&gt;

int main()

{

char s[20];

printf("What's your name? ");

gets(s);

printf("%s ",s);

return 0;

}

當輸入a bde回車的時候,會輸出a bde。

3. c語言編程。從標准輸入設備上輸入一個字元串,分別統計其中每個數字,空格,字母及其他字元出現的次數。

代碼如下:

#include <stdio.h>

int main(){

char stringss[1024];

int i,num[4]={0};

int j = 0;

char c;

while((c=getchar()) !=' '){

stringss[j] = c;

j++;

}

for(i=0;i<j;i++)//統計字元串,遇到''結束

{

if(stringss[i]>='0'&&stringss[i]<='9')//統計數字個數

num[0]++;

else if(stringss[i]==' ')//統計空格

num[1]++;

else if(stringss[i]>='A'&&stringss[i]<='Z'||stringss[i]>='a'&&stringss[i]<='z')//統計字元

num[2]++;

else

num[3]++;//其他

}

printf("出現的數字%d個,出現的空格%d個,出現的字母%d個,其他字元%d個 ",num[0],num[1],num[2],num[3]);

}

程序運行結果如下:

(3)輸入一串字元分別統計c語言擴展閱讀

C語言中對字元串的統計:可以通過循環數組的方式去一個一個的比較字元,然後進行統計。首先可以通過循環的方式讀取每個數字,直到讀到換行符「 」,就結束讀取,把讀取的字元存到數組中,同時記錄下字元的長度,然後進行循環統計,列印出現個數就完成了。

4. 輸入一行字元,分別統計出其中英文字母,空格,數字和其他字元的個數.(C語言)

輸入一行字元分別統計,出其中英文字母空格數字和其他字元的個數的源代碼如下:

#include<stdio.h>

int main()

{

char c;

int letters=0,spaces=0,digits=0,others=0;

printf("請輸入一些字母: ");

while((c=getchar())!=' ')

{

if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))

letters++;

else if(c>='0'&&c<='9')

digits++;

else if(c==' ')

spaces++;

else

others++;

}

printf("字母=%d,數字=%d,空格=%d,其他=%d ",letters,digits,spaces,others);

return 0;

}

(4)輸入一串字元分別統計c語言擴展閱讀

C語言程序統計一個文件的字元數的源代碼如下

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

int counter = 0; //計數器

int ch; //存儲從文件中讀入的字元

while( EOF != (ch = getchar()) ) //使用getchar函數從標准輸入中讀取字元,當讀取到末尾時停止循環

{

counter++; //計數器自增

}

printf("%d", counter);

return 0;

}

5. C語言題目輸入一行字元,分別統計出其中英文字母,空格,數字和其他字元的個數。

錯誤代碼:

if('a'<=nextchar<='z'||'A'<=nextchar<='Z')

else if('0'<=nextchar<='9')

修改後:

#include <stdio.h>

int main()

{

int letter=0,space=0,number=0,others=0;

char nextchar;

printf("Input your string ");

for(;nextchar!=' ';)

{

scanf("%c",&nextchar);

if('a'<=nextchar&&nextchar<='z'||'A'<=nextchar&&nextchar<='Z')

letter++;

else if(nextchar==' ')

space++;

else if('0'<=nextchar&&nextchar<='9')

number++;

else

others++;

}

printf("letter=%d,space=%d,number=%d,others=%d ",letter,space,number,others);

}

(5)輸入一串字元分別統計c語言擴展閱讀

c++輸入一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數。

#include<cstdio>

int main()

{

char x[999];

int i,a=0,b=0,c=0,d=0;

gets(x);

for(i=0;i<=x[i];i++)

{

if('A'<=x[i]&&x[i]<='z')

a++;

else if('0'<=x[i]&&x[i]<='9')

b++;

else if(x[i]==' ')

c++;

else

d++;

}

printf("%d %d %d %d ",a,b,c,d);

return 0;

}

6. C語言編程:輸入一串字母,統計每個字母出現的次數

C語言程序如下:

#include<stdio.h>

int main()

{

char a[100];

char b[24];

int s[100] = { 0 };//用於存儲字元的個數

gets(a);//輸入字元

//開始比較

for (int x = 0; x < 24; x++)

{

int c = 0;//記錄每個字元個數

b[x] = x + 97;//為了讓b[0]是a,b[1]是b依次類推

for (int i = 0; i < 100; i++)

{

if (b[x] == a[i])

{

++c;

s[x] = c;

}

}

if (s[x]>=1)//只輸出輸入中有的字母 的個數

{

printf("%c %d ", b[x], s[x]);

}

}

getchar();

return 0;

}

(6)輸入一串字元分別統計c語言擴展閱讀:

程序思路:
分為三部分 首先輸入字元串 ,其次設定一個字元數組英文小寫字母24, 同時設一個int數組 記錄個數, 以及一個int c 為了給int數組賦值。最後在輸入的時候進行判斷,如果字母的值 大於等於1才輸出。

7. c語言,從鍵盤輸入一串字元串,統計字元串中特定字元的個數,並輸出個數

程序設計思路如下:

從鍵盤分別輸入字元串和要統計的字元,然後對此字元串從頭開始逐個與所統計的字元比較,如相同,則讓計數器加1,知道字元串整體比較結束為止,計數器中就是需統計的字元的個數。

#include"stdio.h"

main()
{charstr[100],ch;/*定義str字元串,定義ch用來存放要統計的字元*/
intcnt=0,i;/*定義cnt用作計數器,初始值為0*/

/*輸入字元串*/
printf("請輸入字元串:");
gets(str);

/*輸入要統計的字元*/
printf("請輸入要統計的字元:");
scanf("%c",&ch);

/*對此字元串從頭開始逐個與所統計的字元比較,如相同,則讓計數器加1,知道字元串整體比較結束為止*/
for(i=0;str[i];i++)
if(str[i]==ch)
cnt++;

/*輸出結果*/
printf("%s串中%c字元的個數是:%d個",str,ch,cnt);
}