1樓:匿名使用者
#include
#include
int main()
puts(s);
printf("%d", num);
return 0;}
2樓:66666順心
#include
#include
int is_same(char*str,char*s)char*p;
char str2[100];
int flag=0;
strcpy(str2,s);//將內容複製到另乙個陣列中p=strtok(str2," ");//目的是為了避免strtok函式對原來字串的破壞!
while(p!=null)
if(strcmp(p,str)==0)//比較是否相同!
flag=1;
break;
p=strtok(null," ");
if(flag==0)
return 0;
else
return 1;
int getcount(char*s)
int i=0,j=0,length=0;
char str[20],str1[100];//將前乙個單詞儲存起來,以便與後面的單詞比較看是否一樣
int word_count=0;//統計單詞個數int k=0;//每個單詞的字元數量!
while(s[i])
if(s[i]!=' ')
if(word_count==0)
word_count++;
j=i;
for(k=0;kstr1[k]=s[k];
str1[k]='\0';
while((s[j]!=' ')&&(s[j]!='\0'))str[length]=s[j];
j++;
length++;
str[length]='\0';
if((word_count!=0)&&(!is_same(str,str1)))
word_count++;
i+=length;
else
i++;
length=0;
return (word_count-1);//減去第一次統計重複的int main(void)
char str[100];
int count=0;
printf("input a string :");
gets(str);
count=getcount(str);
printf("不同單詞的數量:%d\n",count);
return 0;
3樓:匿名使用者
簡單,讀乙個就把對應單詞的計數加一
4樓:匿名使用者
怎麼判斷是不是單詞?
查詞典嗎?
c語言問題:一行語句中不同單詞個數統計
5樓:匿名使用者
如果只要思路的話,可以:
用切割函式strtok 對這一段話進行切割,得到的單詞儲存在乙個二維char陣列裡面,並計算出所有單詞的個數num,然後將第乙個單詞和後面num-1個單詞比較,有重複的,將num-1,最後可以得到單詞個數。
**太複雜了,沒心情寫!!
6樓:匿名使用者
乙個strng陣列用來儲存已經擷取的單詞
使用for each(char ch in aa)+if(ch==(" "))來實現檢測整個句子的迴圈
當檢測到空格時使用substring命令和indexof檢測上個空格出現位置來擷取當前單詞。
使用for迴圈將擷取的單詞對比陣列中的已有單詞,相同的nop,不同的新增倒陣列中。
最後檢查陣列的長度就可以,sizeof aa/sizeof aa[0].
對比時候可以提取乙個字元,將其轉化為int型來實現ascii碼的比對,相等或者+32都視為相等。
7樓:匿名使用者
思路:空格作為分隔,遇到空格設為技術狀態,非空格則不計數,設定相應語句跳過連續空格或非空格,將單詞轉化為統一格式,運用strcmp函式比較
具體**你還是自己寫吧!
c語言統計單詞個數,單詞個數演算法
8樓:
當字元從' '變為字母時或其他字元時word從0變為1,而word從0變為1時就是乙個單詞,所以count+1;當字元由非' '變為' '時word從1變為0,準備判斷下乙個單詞的出現,即等待字元由' '變為其他字元的出現。這樣最後count就是記錄了單詞的個數,其實就是記錄了字元由' '變為其他字元的次數!
c語言統計單詞個數
9樓:說祺阿雅唱
#include
"stdio.h"
main()
printf("%d\n",num);}
10樓:史朝東樂安
#include
#include
intmain()
printf("單詞個數為:%d\n",number);
return0;}
11樓:
#include
#include
int main()
while ( (a[i] >='a' && a[i] ='a' && a[i] <='z') );
//記錄乙個單詞
num++;}}
printf("%d\n",num);
return 0;}
12樓:匿名使用者
int decede(char str)
while((str[i]>='a' && str[i]<='z')||(str[i]>='a'&&str[i]<='z'));
//記錄乙個單詞
num++;}}
return num;}
13樓:風若遠去何人留
根據英語的書寫習慣,在每個單詞前後都會有空格分隔。 所以可以依據空格來劃分單詞。
不過,由於空格可能存在連續多個,所以僅統計空格數是不可以的,需要更複雜一些的演算法。
一、演算法設計:
核心思想是通過乙個flag,來確定單詞的起始, 每出現乙個單詞的起始,則表示存在乙個單詞。 這樣統計出現的單詞起始個數,即可獲得單詞總數。
1、flag初始為1;
2、遍歷字串。
3、對於每個字元,如果出現非空格字元,且flag為1,則為單詞起始,累加計數器。同時賦值flag為0。
4、在flag為0情況下,如果出現空格,表示上乙個單詞已經結束,設定flag為1。
5、 遍歷結束後輸出結果。
#include
int main()
}else if(s[i] == ' ')//上乙個單詞結束。
flag = 1;
}printf("%d\n", n);//輸出結果。
return 0;}
c語言統計單詞個數
14樓:向日葵
q:輸入一串字串,輸出其中有多少個單詞。
eg:good wishes
a:#include #include #define size 20int main()
; int count=0;
printf("plz input the string\n");
gets(str);
puts(str); int length = strlen(str); for (int i=0;i『\0』和『0』的區別:
在c語言中,它們都是字元,都用對應的ascii碼來儲存。例如第乙個ascii碼,0,對應字元為(null),就是 『\0』,即空字元。我們在c語言中判斷乙個字串是否結束的標誌就是看是否遇到『\0』,如果遇到『\0』,則表示字串結束。
字元『0』和數字0的區別:前者是字元常量,後者是整形常量,但是字元常量可以像整數一樣在程式中參與相關運算。
字串所有字元,如果當前字元不為空,單詞數+1,再巢狀乙個while迴圈,判斷當前單詞是否結束。
#include
#include
int count_words(char* s)
{int len=strlen(s);
int count,i;
for(i=0;iif(*(s+i)!=' '){ // 如果當前**不為空
count++; //單詞數+1
while(*(s+i)!=' '&& ii++;
return count;
int main()
char* a="i love you";
printf("%d",count_words(a));
15樓:風若遠去何人留
根據英語的書寫習慣,在每個單詞前後都會有空格分隔。 所以可以依據空格來劃分單詞。
不過,由於空格可能存在連續多個,所以僅統計空格數是不可以的,需要更複雜一些的演算法。
一、演算法設計:
核心思想是通過乙個flag,來確定單詞的起始, 每出現乙個單詞的起始,則表示存在乙個單詞。 這樣統計出現的單詞起始個數,即可獲得單詞總數。
1、flag初始為1;
2、遍歷字串。
3、對於每個字元,如果出現非空格字元,且flag為1,則為單詞起始,累加計數器。同時賦值flag為0。
4、在flag為0情況下,如果出現空格,表示上乙個單詞已經結束,設定flag為1。
5、 遍歷結束後輸出結果。
#include
int main()
}else if(s[i] == ' ')//上乙個單詞結束。
flag = 1;
}printf("%d\n", n);//輸出結果。
return 0;}
16樓:匿名使用者
#include
int main(void)
else
word =1 ;
c=getchar();
}if ( word )
count++ ;
/*---------*/
printf("count = %d\n", count);}}
17樓:風雷九州
char c;
int count, word;
int repeat, ri;
scanf("%d", &repeat);
getchar();
for(ri = 1; ri <= repeat; ri++)word = 0;
}else
c = getchar();
}if(word == 1)
printf("count = %d\n", count);
}**見上
18樓:匿名使用者
方案一、用gets(讀入字串,然後逐個字元遍歷該串,並統計出單詞個數。
方案二、用函式getchar()逐個讀入字元,同時判斷單詞個數,直到讀到字元'\n'。
疑問、對於相同的單詞作何處理?
19樓:寒寒家
如果僅僅是統計單詞的個數,那麼可以統計 空格+字母 這種組合出現的次數count(也就是空格的下乙個字元是字母)。
對於開頭的單詞,如果前面沒有空格,那麼最終有count+1個字元。
20樓:匿名使用者
#include "stdio.h" main() printf("本行中共有%d個單詞.\n",num); } 其原理很簡單:
對每個字元進行判斷,如果是空格就把變數word標記為0,如果不是空格就判斷word是不是0(即判斷之前有沒有空格),如果存在空格單詞量加1,然後復位word變數為0。就這樣重複,知道句子結束
c語言檢測單詞數問題?C語言統計單詞個數問題!
isspace 函式用來檢測乙個字元是否是空白符。標頭檔案 在預設情況下,空白符包括 空格 水平製表符 換行符 垂直製表符 換頁 回車。一 你第乙個寫法有錯誤 int a 這裡定義時沒有給初值,a是隨機值,不能直接拿來迴圈累加 且這樣寫a累加的是空白符數不是單詞數。二 加布林變數目的是單詞計數 in...
c語言 陣列未知個數 怎麼宣告,C語言 陣列未知個數 怎麼宣告
風若遠去何人留 c語言在陣列個數未知的情況下,根據應用情況不同,有三種方式。1,陣列元素總數未知,但是需要儲存的內容是已知的。其實這是一種變相的已知個數,只是程式設計者不去計算總個數,把這個工作交給系統來做。這時可以通過陣列個數留空,顯式初始化陣列進行宣告。比如char s this is a te...
用C語言編寫“背單詞程式”,用C語言編寫如下程式?
董俊錕 include include include struct word 定義一個word的結構體,裡面的兩個成員分別放英語單詞和相應的漢語翻譯 int point 0 統計分數的 int count1 0 測試的次數 void tianjia struct word str 100 int ...