『壹』 c語言統計單詞個數問題!
根據英語的書寫習慣,在每個單詞前後都會有空格分隔。 所以可以依據空格來劃分單詞。
不過,由於空格可能存在連續多個,所以僅統計空格數是不可以的,需要更復雜一些的演算法。
一、演算法設計:
核心思想是通過一個flag,來確定單詞的起始, 每出現一個單詞的起始,則表示存在一個單詞。 這樣統計出現的單詞起始個數,即可獲得單詞總數。
1、flag初始為1;
2、遍歷字元串。
3、對於每個字元,如果出現非空格字元,且flag為1,則為單詞起始,累加計數器。同時賦值flag為0。
4、在flag為0情況下,如果出現空格,表示上一個單詞已經結束,設置flag為1。
5、 遍歷結束後輸出結果。
二、參考代碼:
#include<stdio.h>
intfunc(char*s)//計算單詞數函數
{
inti,n=0,flag=1;
for(i=0;s[i];i++)//遍歷
{
if(flag==1)
{
if(s[i]!='')//單詞起始
{
n++;
flag=0;
}
}
elseif(s[i]=='')//上一個單詞結束。
flag=1;
}
returnn;//返回結果。
}
intmain()
{
chars[200];
gets(s);//輸入字元串。
printf("%d ",func(s));//調用函數,計算並輸出結果。
return0;
}
『貳』 C語言問題,讀取txt文件中單詞個數。幫忙看一下程序。
#include "stdio.h"
main()
{
char s[81],c;
int i,num=0,word=0;
printf("請輸入:\n");
gets(s);
for(i=0;(c=s[i])!='\0';i++)//判斷句子是否到未
if(c==' ') word=0;//是空格就為0
else if(word==0)//不是空格就判斷之前有沒有空格
{
word=1;//復位用來判斷空格是否存在的開關
num++;//如果之前有空格,單詞數加1
}
printf("輸入字元串共有%d個單詞.\n",num);
}
這是統計單詞數的c程序,你自己看看吧,可能會幫得上你,因為你的那個有文件,我沒有新建文件,所以就只能幫你到這兒了。
『叄』 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語言 讀入一行英文文本每個單詞出現的個數
//通過鍵盤輸入一行英文句子,統計其中的英文字母和單詞的數量,單詞之間用空格分開(標點符號不算單詞);
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
char string[100];//根據擬從鍵盤輸入的字串的長度需要適當調整,要避免輸入的長度超出設定的范圍。
char c;
int i, num=0,sum=0,word=0; //定義 word 用來指示一個單詞是不是結束或新單詞是否開始;
printf("請從鍵盤輸入一行需要查詢的英文句子,進行單詞數量統計:
");
gets(string); //從鍵盤獲得輸入的字元串;
//以下統計句子中的英文字元個數;
for(i=0;(c=string[i])!='