1樓:
如果是填空,下面這個是對的
private sub command1_click()dim s as string, i as integerdim start as integer
dim n as integer
s = text1.text
n = 0
for i = 1 to len(s)
do while mid(s, i, 1) = "" and i <= len(s)
i = i + 1
loop
start = i
do while mid(s, i, 1) <> " " and i <= len(s)
i = i + 1
loop
if i <> start then
list1.additem mid(s, start, i - start + 1)
n = n + 1
end if
next i
msgbox "單詞個數:" & n
end sub
2樓:匿名使用者
根本不需要這麼麻煩,不知道你的text1裡面的內容都是啥樣子,能貼一下麼?請追問,補充的話不再回覆
編寫程式,輸入字串(包含空格),統計其中單詞的個數,單詞之間以乙個或多個空格分隔。 20
3樓:用著追她
1、首先,定義乙個整型變數,儲存找到的字串位置。
2、定義兩個字串變數,儲存要查詢的字串,以及是否包含的單詞。
3、輸入查詢的字串,儲存在變數str中。
4、輸入要查詢的單詞,儲存在word中。
5、查詢單詞在字串中的起始位置,儲存在變數p中。
6、如果p的值為-1,則輸出字串中沒有要找的單詞。
7、然後,將查詢到的單詞替換為英文name。
8、最後,輸出替換後的字串。
4樓:魘魅
#include
void main()
printf("你輸入的字元是:");
puts(str);
printf("num=%d \n",num+1);}
輸入乙個字串,統計其中包含的單詞個數,假設單詞與單詞之間用空格分隔。
5樓:
#include
void main()
printf("你輸入的字元是:");
puts(str);
printf("num=%d \n",num+1);}
輸入一行字元,統計其中的單詞的個數,單詞之間以單個空格作為分隔符
6樓:
if(c==' ') word=0;//當前字元是空格,所以不是單詞,word=0
else if(word==0)//當前字元是字母(c!=' '),所以不是空格,並且前面的不是單詞(word==0)
//因為這種情況什麼也不做,所以**沒有寫,因此就有些不好理解了。
//else 否則,(當前字元是字母(c!=' '),並且word==1; 即還在同乙個單詞中)
// donothing() ;什麼也不做!
////
ps:這個程式,可以處理n個空格,和前後都有空格的情況。
的確是個小巧精悍的程式!
舉例 str=「 it is a good idea! ";
i=0~3 c==' ';執行if(c==' ') word=0; 所以 一直有word=0 ;並且 word==0;
i=4 遇到 『i』 c=='i' ;word==0 執行else if (word==0);//word =1; num++;
word由0變1;乙個單詞了,計數加一。
並且以後就在同乙個單詞中了,始終有word==1 ,除非遇到空格。
i=5 遇到 『t』; c=='t' ;word==1 不執行 if 和 else if 的任何乙個;滑過『t』
i=6 再次遇到空格,執行if(c==' ') word=0;遇到第乙個空格,word==1變成word==0
i=7~9 以後重複i=0~4 一直有word=0的賦值 ;並且始終有 word==0;
i=10 重複 i=4 的過程 這次遇到 『i』 c=='i' ;word==0 執行else if (word==0);//word =1; num++;
word由0變1;乙個單詞了,計數加一。
i=11 重複 i=5 遇到 『s』; c=='s' ;word==1 不執行 if 和 else if 的任何乙個;滑過『s』
以後大致相同最後遇到\0'掃瞄結束。
記錄5個單詞
從空格變單詞5次;從單詞變空格5次;
有幾個空格word=0;就執行幾次。
有幾個單詞word =1; num++; 就執行幾次,並且,只有遇到,第乙個字母時,才執行。
所有,非第乙個字母的字母,和其他,非空格,並且非結束符的字元,被滑過。
word 和 num 都初始化為0 所以無論,第乙個是空格會被賦值為0,還是字母(word 已經是0了)都沒有問題。
同樣,結尾有無空格,和空格有n個,一樣沒有問題。因為:
1)結尾的空格,不會遇到非空格,就結束迴圈了。
2)無論多少空格,都會有word=0的賦值操作,不遇到非空格,word就一直為0;
結論:這段**看了,確實給人以一種,驚豔的感覺!!!!!!!!!!!!
7樓:飛向天空
word在這裡沒有統計數量的功能,word只是告訴你什麼時候單詞數量應該加1,什麼時候單詞數量不變。那究竟是什麼時候單詞數量num該加 1 呢?
在str="a1 b2 c3 d4 e5" 裡面,除了第乙個字串a1外,其餘的每個字串前面都有乙個空格,如果我們把str換為str=" a1 b2 c3 d4 e5",用word=0表示遇見乙個空格,那麼每遇見word=0時單詞數量都加 1 ,這樣就可以正確統計單詞數量了。
程式裡面word初始值就是0,那麼就可以把str理解成str=" a1 b2 c3 d4 e5",即在最開始新增乙個空格,單詞數量是不變的。word等於0時num加1——表示後面有乙個新單詞。num加1,然後word再改為1(只要不是0),直到遇到空格時word再改為0。
可是要是有連續的空格出現呢?其實這個也沒有問題,str="a b",a與b之間有兩個空格,讀第乙個空格的時候word,被賦值為0,讀第二個空格的時候word同樣被賦值為0,等價於str="a b",即字串中間的空格再多都等同於乙個空格。同樣,在str末尾出現空格等同於沒有空格,因為word一直被賦值為0,所有的 else if(word==1) 都不可能執行,num也不可能加 1 了。
開頭類似。
word既然只是乙個表示「下面是否有新單詞出現」的訊號,那麼就可以把word的賦值改一下,比如把所有word=0改為word=100,或者把所有word=1改為word=25,注意是「所有」,包括初始化的賦值。隨便如何改變,都不影響統計結果。甚至可以不用word,比如申明乙個char c=『a』,把所有word=0換為c=『a』,把所有word=1換為c=『b』(只要不是a,其餘任何字元都可以),最終結果一樣。
8樓:陀蔚榮忠
#include
#define
max_char
200int
read_line(char
str,int
n);int
count_spaces(const
char
s);void
f1(char
*s);
intmain()
//讀入字串
intread_line(char
str,int
n)//去除字串的前導空格。
void
f1(char*s)
9樓:布雷德伊蘭
lz的**統計的不是單詞,應該是統計的字母。
如果str="this is word!" 怕是就統計的不是單詞了
10樓:幫個忙好不
word就是個標誌,空格時是0,然後不是空格時是1,是1時就表示是單詞,用num統計
11樓:
你這麼理解吧。
你把word這個變數名改成is_word,然後當is_word為0的時候表示當前不是單詞,為1的時候表示當前是單詞。
if(c==' ') //當前字元是空格is_word=0; //當前不是單詞,is_word置0else //否則當前字元不是空格
if(is_word==0) //如果is_word的原值是0,表示前一字元還是空格
編寫函式統計輸入文字中單詞個數,單詞之間用空格符、換行符、跳格符隔開,用@作為輸入結束。求指導謝謝
12樓:
給函式countword()設乙個返回值,比如用全域性變數m,m=n;return m;這樣。
13樓:匿名使用者
《無底洞》(又名「陷空山」)
.輸入一行字元,統計其中有多少個單詞,單詞之間用空格分隔。 5
14樓:
這為朋友,很少在電腦上調程式吧,這段程式中有一些值得注意的錯誤。首先,標準輸入輸出標頭檔案是#include,第
二、陣列string後是中括號,應該是string[81],第三,string和string是不同的,c語言區分大小寫,最後乙個問題,程式設計時所有符號一律用英文輸入,這個雖然是小問題,但一開始就應養成良好的習慣。
下面是我改好的程式:
#include
main()
printf("there are %d words in the line.\n",num);
}好了,言歸正傳。這段程式有個值得注意的問題,for迴圈沒有大括號,意味著它包含乙個if-else語句,if語句中是c=' '表示乙個單詞的結束,然後用word標記,word=0時表示有乙個完整的單詞。當讀入到下乙個字母時,表示又有乙個新的單詞,所以if(word==0)時,num++,同時將word取消標記準備下一次標記。
比如說:
輸入i am a boy.
i讀入:因為word==0 所以num=1,word=1
讀入乙個空格:word=0 說明第乙個單詞讀入完畢
a讀入:因為word==0 所以num=2,word=1 說明有第二個單詞
m讀入:word=1 說明第二個單詞未讀完
讀入乙個空格 word=0 說明第二個單詞讀入完畢
a讀入 因為word=0 說明有第三個單詞 所以 num=3,word=1
以此類推,得到結果為4
15樓:it孤鶩
for (i=0;i<100;i++)
scanf("%c",&string[i]);
這樣寫,你輸入的字串必須是100個字元啊應該用gets(string)
#include
int main()
printf("%d\n",num);}
編寫函式統計輸入文字中單詞個數,單詞之間用空格符 換行符 跳格符隔開,用作為輸入結束。求指導謝謝
自我程式設計 1 n n必須有初值0 2 countword必須有返回值,你沒寫return語句 3 如果你必須要輸入 確認而不是回車確認,那麼請使用函式getch而不是getchar。getch在按鍵的時候就接收字元了,不顯示在控制檯,所以需要單獨寫語句列印輸入的字元 getch中回車符號是 r ...
從A,B,C,D中找出其畫線部分與所給單詞畫線部分讀音相同選
遊客隨風 小題1 c 小題2 a 小題3 c 小題4 b 小題5 d 試題分析 小題1 vac ation k a.s b.s c.k d.s 故選c。小題2 i mpress a.b.a?c.a?d.a?故選a。小題3 ear thquake a.e?b.c.d.故選c。小題4 ju dge a....
隨便英語單詞含中文,隨便15個英語單詞含中文
pleasure 快樂 victory 勝利 view 看做,觀點 effort 努力,付出 draft quality 粗劣印刷的 letter quality 高質量印刷的homely 家庭的 平凡的 不好看的 bring 帶給 baggage 行李 abundance 豐富的 starting...