㈠ 試寫一個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遇到字元串里的一個空格單詞數加一,遇到一個逗號或句號句子數加一,程序也很簡單,自己試著做下吧