二維陣列統計單詞個數

2021-10-07 08:14:55 字數 1306 閱讀 6221

題目:讀取幾行文字(不超過五行,每行不超過20個字元,且每行行首可能有空格,單詞之間得空格可以多於乙個,每行末尾可能有多個空格),編寫函式,統計單詞出現得次數

思路:(這道題困擾了我許久,我一直對於二維字元陣列不太感冒,一直也做不出來。今天終於做出來了。所以發部落格紀念一下。)我先輸入乙個n,用來控制我一共要輸入幾行,然後用乙個scanf來接受那個換行符。再然後就用gets連續一整行讀取輸入的字串。接下來的分割單詞,按一行一行的字串進行分割。第乙個大while用來判斷是不是到字串的末尾了。j是每一行字串中每乙個字元的下標。第二個字串用來判斷開頭輸入的是不是空格,如果是的話,就跳過乙個字元們也就是j++。

如果不是空格也不是字串末尾,那就開始分割字串,程式查到的每乙個字元存到乙個新的字串裡面。在跟str2進行較。str2就是儲存公尺乙個單詞用的字串陣列。用strcmp函式進行比較,如果相同的話,就在對應的一維陣列的計數器上面加一。然後把flag賦值成0,flag為0表示單詞相同,為1表示不同。所以當flag為一的時候,把這個新單詞複製到str2陣列裡面去。最後乙個while判斷是不是空格,是空格就跳乙個字串。最後輸出就好了。count就是單詞的個數

# include

# include

using

namespace std;

int main (

void

),count=0;

cin>>n;

scanf

("%c"

,&str)

;for

(int i=

0;i)for

(int i=

0;i)while

(str[i]

[j]!=

' '&& str[i]

[j]!=

'\0'

) str1[k]

='\0'

; flag=1;

for(

int z=

0;z< count && flag==

1;z++)}

if(flag==1)

while

(str[i]

[j]==

' '&& str[i]

[j]!=

'\0'

)

j++;}

}for

(int i =

0; i < count; i++

)printf

("%10s : %d \n"

, str2[i]

, num[i]);

return0;

}

二維陣列查詢單詞

給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中 相鄰 單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。示例 board a b c e s f c s a d e e 給定 word abcced 返回 ...

二維陣列 二維陣列和指標

include using namespace std int main 如上面這段程式所示,通過取位址符 指標 p 獲得了變數 a 的位址,那麼解引用符 就可以從 p 中得到變數 a 的值。也就是說,p a和 p a是等價的。p 是變數 a 的位址,從 p 中就可以取出 a 的值。反之,能從 p ...

C 二維陣列統計不同整數

題目 編寫函式int stat int a,int n,int c 2 a指向的陣列中儲存了由n個1位整數組成的數列 n為偶數 函式從前至後依次將 a陣列中每兩個相鄰元素拼成乙個不超過 2位的整數,從而生成有 n 2個元素組成的整數數列 統計該數列中不同整數各自出現的次數,並將統計結果儲存到 c指向...