字元串計數c語言
A. c語言統計字元串中每個字元出現的次數
#include<stdio.h>
#include<stdlib.h>
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<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;
}
(1)字元串計數c語言擴展閱讀:
①printf()函數是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。
格式輸出,它是c語言中產生格式化輸出的函數(在stdio.h中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和數據格式說明組成。
要輸出的文字除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。
簡單點理解就是,在一段程序中你正確使用該函數,可以在該程序運行的時候輸出你所需要的內容。
②printf函數是一個標准庫函數,它的函數原型在頭文件「stdio.h」中。但作為一個特例,不要求在使用printf函數之前必須包含stdio.h文件。
printf()函數的調用格式為:printf("<格式化字元串>",<參量表>)。
其中格式化字元串用於指定輸出格式。格式控制串可由格式字元串和非格式字元串兩種組成。
B. c語言中統計字元串中各個字元的個數
原發布者:zlaikai1314
#include#include#include#includeusingnamespacestd;chara[100];//字元數組intb[100];//字元個數doublep_a[100];//字元概率數組intsum=0;//字元總數//判斷當前字元temp是否已出現過boolsearch(chartemp,chara[],intm,intn)//m為數組a的元素總個數,即100;n為當前數組a中存放的字元種類的個數{inti=0;while(i<n){if(a[i]==temp)returntrue;elsei++;}returnfalse;}//求各個字元的個數,放在數組b中voidread_file(stringfile_name="test_data.txt"){intk=0;ifstreamfile(file_name.c_str());//將string轉化為char數組chartemp;if(file.is_open()==true)//檢查文件是否打開{while(file.peek()!=EOF)//從文件中讀取一個字元,但該字元並未從輸入流中刪除{file.get(temp);//從文件讀入一個字元並把它存儲在tempsum++;//統計出現的字元總數if(search(temp,a,100,k)){for(inti=0;i<k;i++){if(temp==a[i]){b[i]++;break;}}}else
C. c語言如何統計字元個數
在C語言中,要統計一個字元串的字元個數,可以採用char類型的字元數組,再進行逐個位元組的掃描,如果它的ASCII值大於零,這個位元組算一個字元;如果它的ASCII值小於零的,就連同後續的一個位元組算一個字元。遇到ASCII值等於零,就停止統計輸出統計的結果。
D. 編寫C語言程序統計輸入字元串的個數、
很簡單了,代碼如下:
#include
void
main()
{
char
a[100];
int
i,count=0,flag=1,n=0;
gets(a);//從鍵盤輸入字元串
for(i=0;a[i];i++)
{
if((a[i]>='a'
&&
a[i]<='z')
||
(a[i]>='a'
&&
a[i]<='z'))//判斷是不是字元
{
flag=0;//設置字元標志
continue;//返回下一個循環
}
if(!flag)//前面一位是字元,即當前是某個單詞字元結束
{
count++;//統計單詞個數
flag=1;//設置非字元標志
}
}
i--;
if((a[i]>='a'
&&
a[i]<='z')
||
(a[i]>='a'
&&
a[i]<='z'))
count++;//增加字元串結束的單詞
printf("共有%d單詞\n",count);
}
E. c語言輸入一行字元串,如何統計其中的字母和數字的個數
要統計英文字母,空格,數字和其他字元的個數,代碼如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char c;
int letters=0;
int space=0;
int digit=0;
int other=0;
printf("請輸入一行字元:>");
while((c=getchar())!=' ')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
letters++;
}
else if(''==c)
{
space++;
}
else if(c>='0'&&c<='9')
{
digit++;
}
else
{
other++;
}
}
printf("字母的個數:>%d 空格的個數:>%d
數字的個數:>%d 其他字元的個數:>%d ",
letters,space,digit,other);
system("pause");
return 0;
}
(5)字元串計數c語言擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:
#include<math.h>//一些數學函數的原型,以及相關的類型和宏
如果需要包含針對程序所開發的源文件,則應該使用第二種格式。
採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在當前項目中的函數原型、類型定義和宏
你可以在#include命令中使用宏。如果使用宏,該宏的取代結果必須確保生成正確的#include命令。例1展示了這樣的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
當上述程序代碼進入預處理時,如果_DEBUG_宏已被定義,那麼預處理器會插入myProject_dbg.h的內容;如果還沒定義,則插入myProject.h的內容。
F. c語言怎麼統計字元串中字元個數
使用系統標准庫函數strlen(s)就可以測得字元數組s中的字元串的字元個數,也就是字元串的長度,需要包含string.h頭文件。
G. C語言 字元計數
EOF是判斷讀取文件是否是結尾,但是你現在這個不是讀取文件,所以,這個應該是個死循環,最好是換成getchar!='\n';一般輸入完成後是回車所以判斷它是不是輸入回車了,輸入回車了,那麼就是輸入結束了,然後nc就是你輸入的內容的字元個數while就是個循環,
H. c語言怎麼計算字元串的字元個數
一般有三種辦法可以計算英文字元的個數:
1)使用strlen()函數
2)從首字元開始,邊掃描邊計數,到'\0'為止('\0'不計數)
3)從首字元開始,掃描到'\0'為止,'\0'地址與字元串首地址的差。
I. C語言字元串計數
#include<stdio.h>
intmain(void)
{
charaChar;
intspaces=0,upper=0,lower=0,other=0;
do{
scanf("%c",&aChar);//讀取字元
if(aChar=='')//判斷是否空格
{
++spaces;
continue;
}
if('A'<=aChar&&aChar<='Z')//判斷是否大寫字母
{
++upper;
continue;
}
if('a'<=aChar&&aChar<='z')//判斷是否小寫字母
{
++lower;
continue;
}
++other;//以上都不是,則是其他字元
}while(aChar!=' ');
printf("spaces=%d,upper=%d,lower=%d,other=%d ",
spaces,upper,lower,other-1);
return0;
}
因為是用' '來判斷一行字元串的,而 也是一個字元,導致最後統計other會多1個,所以要other-1,也可以加一個if語句來判斷:
if(aChar!=' ')
++other;
當然,就算把
也統計進去,也是符合題意的。
J. c語言字元串怎麼數
你看到的字元數量就是字元串長度(字元+空格+問號)。用函數strlen可獲取長度。
佔用存儲空間是長度+1,因為字元串常量末尾還有一個隱藏的結束符號0。