統計字串中最長單詞的長度!C語言

2021-07-01 01:19:30 字數 717 閱讀 7266

1樓:猶玉枝甲畫

if(str[i]>='a'&&str[i]<='z')這句有點問題,

z和a之間還有一些字元,

應該排除掉

這個程式的主要問題是當讀到最後乙個字元null時,for迴圈退出,

這時,count的值對應最後乙個單詞,

而這時這個單詞的長度沒有進入for中的else進行比較,從而max的值會不對.

所以你再在for後面加幾句**比較一次就可以了.

2樓:侍桂花嵇溪

你的程式有以下幾個邏輯錯誤:

1、用if(str[i]>='a'&&str[i]<='z')判斷是否是字母。

字母在ascii中不是連續的,

大寫字母a-z

為65-90

小寫字母a-z

為97-132

所以之間會有6個字元(他們是[\]

^_`)也被你當做單詞的組成部分被計入長度。

2、當乙個單詞沒有以非字母結束時,最後乙個else沒有被執行到,所以max的值仍然是

上一次讀到的最長單詞長度,

所以最後輸出時要再判斷一下max和count的大小,輸出大的那個。

幫你修改後的程式如下:

#include

main()

else

if(str[i]>='a'&&

str[i]<='z'

)else

C語言!編寫函式統計子字串在另字串中出現的次數 區分

include include int fun char a,char b int i,j,n1,n2,n3,n4 0 n1 strlen a n2 strlen b for i 0 idun3 0 for j 0 j 如圖所zhi示,望採納。dao。用c語言編寫輸入一字串,統計字串中各個字母出現的...

C 中長度大小的問題!!C語言 字串長度問題!

這個涉及到結構體的記憶體對齊問題。一 結構體變數中成員的偏移量必須是成員大小的整數倍 0被認為是任何數的整數倍 二 結構體大小必須是所有成員大小的整數倍。1,首先對於結構體test。float佔4個位元組,char name 10 相當於2個節位元組,再加乙個2位元組。由於剩下的2位元組不足乙個fl...

輸入字串,統計其中包含的單詞個數,假設單詞與單詞之間用空格分隔

include void main printf 你輸入的字元是 puts str printf num d n num 1 編寫程式,輸入字串 包含空格 統計其中單詞的個數,單詞之間以乙個或多個空格分隔。20 1 首先,定義乙個整型變數,儲存找到的字串位置。2 定義兩個字串變數,儲存要查詢的字串,...