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

c語言統計字元和單詞

發布時間: 2022-03-31 11:49:03

㈠ 試寫一個c語言程序統計輸入的字元串中,包含的字元數,行數及單詞數

#include<stdio.h>

#defineIN1//在單詞內
#defineOUT0//在單詞外
/**
*統計輸入的行數,單詞數與字元數
*/
intmain(void)
{
//c:每次讀的支付,nl:行數,nw:單詞數,nc:字元數,state:標示狀態
intc,nl,nw,nc,state;
state=OUT;
nl=nw=nc=0;
while((c=getchar())!=EOF)
{
++nc;
if(c==' '){
++nl;
}

if(c==''||c==' '||c==' '){
state=OUT;
}elseif(state==OUT){
state=IN;
++nw;
}
}
printf("%d%d%d",nl,nw,nc);
return0;
}

㈡ 如何用C語言編寫一個程序,統計輸入字元串的相同單詞個數

你這個問題需要用到模式匹配的演算法,正好我現在也學這個,在《數據結構》上有,書上已經有經典代碼了,我就不貼出來了,最好是用KMP演算法,這個是經過改進了的,速度比較快!

㈢ C語言:統計一行字元串中單詞的個數

我把你程序改了一下,可以實現你想要的功能了。
你的char
str[81];
int
i,num=0,word=0;
char
e;
這幾個定義變數的位置都放錯了。
還有你的
數字個數和總的字元個數
也沒統計,我跟你加了。
#include
#define
maxsterlen
255
#include
int
main()
{
int
a=0,b=0,c=0,d=0;
char
str[81];
int
i,num=0,word=0;
char
e;
printf("please
input
the
string:\n");
gets(str);
for(i=0;i<81;i++)
{
if(str[i]!='\n')
{
if((str[i]>='a'&&str[i]<='z')||(str[i]>='a'&&str[i]<='z'))
a++;
else
if(str[i]>='0'&&str[i]<='9')
b++;
else
if(str[i]=='
')
c++;
else
d++;
}
}
for(i=0;(e=str[i])!='\0';i++)
{
if(e=='
')
word=0;
else
if(word==0)
{
word=1;
num++;
}
}
printf("單詞個數
%d
\n",num);
printf("字母個數%d\n",a);
printf("數字個數%d\n",b);
printf("空格個數%d\n",c);
printf("總的字元個數%d\n",d);
}

㈣ C語言,統計字元串(含數字、空格、標點、英文)中的單詞個數

你先按照標點符號和空格來拆分字元串,把字元串拆成一個字元串數組,裡面每個元素是可能的單詞。
然後,你再定義一個驗證函數,參數是字元串,函數功能就是驗證傳遞進來的字元串是否是符合條件的單詞,具體規則就按照你問題上來,遍歷字元串並做幾個判斷就可以了。
最後你再main函數中遍歷字元串數組,循環調用y驗證函數就可以了。

㈤ 用C語言統計字元串中單詞的個數

我把你程序改了一下,可以實現你想要的功能了。
你的char
str[81];
int
i,num=0,word=0;
char
e;
這幾個定義變數的位置都放錯了。
還有你的
數字個數和總的字元個數
也沒統計,我跟你加了。
#include

#define
maxsterlen
255
#include

int
main()
{
int
a=0,b=0,c=0,d=0;
char
str[81];
int
i,num=0,word=0;
char
e;
printf("please
input
the
string:\n");
gets(str);
for(i=0;i<81;i++)
{
if(str[i]!='\n')
{
if((str[i]>='a'&&str[i]<='z')||(str[i]>='a'&&str[i]<='z'))
a++;
else
if(str[i]>='0'&&str[i]<='9')
b++;
else
if(str[i]=='
')
c++;
else
d++;
}
}
for(i=0;(e=str[i])!='\0';i++)
{
if(e=='
')
word=0;
else
if(word==0)
{
word=1;
num++;
}
}
printf("單詞個數
%d
\n",num);
printf("字母個數%d\n",a);
printf("數字個數%d\n",b);
printf("空格個數%d\n",c);
printf("總的字元個數%d\n",d);
}

㈥ c語言統計單詞個數

根據英語的書寫習慣,在每個單詞前後都會有空格分隔。 所以可以依據空格來劃分單詞。

不過,由於空格可能存在連續多個,所以僅統計空格數是不可以的,需要更復雜一些的演算法。

一、演算法設計:

核心思想是通過一個flag,來確定單詞的起始, 每出現一個單詞的起始,則表示存在一個單詞。 這樣統計出現的單詞起始個數,即可獲得單詞總數。

1、flag初始為1;

2、遍歷字元串。

3、對於每個字元,如果出現非空格字元,且flag為1,則為單詞起始,累加計數器。同時賦值flag為0。

4、在flag為0情況下,如果出現空格,表示上一個單詞已經結束,設置flag為1。

5、 遍歷結束後輸出結果。

二、參考代碼:

#include<stdio.h>
intmain()
{
chars[200];
inti,n=0,flag=1;
gets(s);//輸入字元串。
for(i=0;s[i];i++)//遍歷
{
if(flag==1)
{
if(s[i]!='')//單詞起始
{
n++;
flag=0;
}
}
elseif(s[i]=='')//上一個單詞結束。
flag=1;
}
printf("%d ",n);//輸出結果。
return0;
}

㈦ c語言統計字元串中指定的單詞個數

給你個類似的。。。你小改下,就應該可以了。希望對你有幫助

/*編寫一個函數,該函數可以統計一個長度為2的字元串在另一個字元串中出現的次數。

例如,假定輸入的字元串為:asdasasdfgasdaszx67asdmklo,

子字元串為:as,則應輸出6。

[程序分析]

由於小串中只有2個字元所以可用str[i]==sbustr[0]&&str[i+1]==substr[1]來判斷小串是否與長串當前位置(str[i])相同(即出現一次)。

因而只要讓長串當前位置逐一向後移即可(用for()循環來完成)

*/

//[源程序]

#include"stdio.h"

#include"string.h"

#include"conio.h"

intfun(char*str,char*substr)

{inti,n=0,s=strlen(str);

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

if((str[i]==substr[0])&&(str[i+1]==substr[1]))

n++;

returnn;

}

main()

{

charstr[81],substr[3];

intn;

printf("輸入的字元串:");

gets(str);

printf("子字元串:");

gets(substr);

puts(str);

puts(substr);

n=fun(str,substr);

printf("n=%d ",n)

}

/*******************************************************************************************************/

按你的意思我改了下調用函數里的

intfun(char*str,char*substr)

{

inti,j,n=0,s=strlen(str),m=strlen(substr),pan=1;

printf("%d ",m);

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

{pan=1;

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

if((str[i+j]!=substr[j]))//這是進行比較,不是跳出

{pan=0;

break;}

if(pan)

n++;

}

returnn;

}

㈧ 寫一個c語言程序,統計一個字元中單詞的個數

#include<stdio.h>
#include<string.h>
#include<ctype.h>

intWordCount(chara[])
{
intn=strlen(a);
intcnt=0;
inti;
for(i=0;i<n;i++)
{
if(!isalpha(a[i])&&i-1>=0&&isalpha(a[i-1]))
{
cnt++;
}
}
returncnt;
}
intmain()
{
chara[1024];
while(gets(a))
{
printf("%d ",WordCount(a));
}
return0;
}

㈨ c語言 輸入一行字元,統計有多少個單詞

#include<stdio.h>
int main()
{
char string[81];
int i,num=0,word=0;
char c;
gets(string);
for(i=0;(c=string[i])!='\0';i++)
if(c==' ')word=0;
else if(word==0)
{
word=1;
num++;
}
printf("There are %d words in the line.\n",num);
return 0;
}

㈩ 用C語言編譯一個程序:統計字元串里有幾個單詞和幾個句子

用兩個計數器,初始化為0遇到字元串里的一個空格單詞數加一,遇到一個逗號或句號句子數加一,程序也很簡單,自己試著做下吧