C語言 長句英語分割單詞

2021-09-24 14:23:20 字數 1730 閱讀 8438

通過狀態劃分來統計單詞個數,這是為後面任務的完成做了鋪墊

通過三種狀態來判斷指標的位置,從而達到計算是否未正確單詞,是否有非法符號存在等情況。如果按照正確情況是,指標就會通過正常的狀態變化從而計算單詞數目

#define start 0

#define in_word 1

#define out_word 2

#define pointerror 3

//檢測單詞數目

struct words

;words words_number

(char

*str)

else

else

break

;case in_word:if(

!isalpha

(*str)

)//else keeping in_word

else word.state = out_word;

}break

;case out_word:if(

isalpha

(*str)&&*

(str-1)

==' '

)//else keeping out_word

break;}

str++;}

}return word;

}

需要知道的是我的英文長句的**是從檔案獲取的,其次我的單詞去路是通過函式指標傳走的,如果你不需要傳遞到其他模組進行操作,那麼也可以改為存放在某個位置

其次要明白的是,該操作是建立在上面單詞計數的基礎上完成的。可能與看官的思路不同,但是我想說明的是如何通過

狀態變化的方式從而達到我們需要的計數和分割操作。

//函式指標

typedef

void

(*fun)

(char

*word)

;//解析函式

void

parse

(char

*file_name,fun fun_name)

;#define start 0

#define in_word 1

#define out_word 2

void

parse

(char

*file_name, fun fun_name)

;char

*p = buffer;

int state = start;

//正常單詞

while(!

feof

(fp)

)//判斷檔案 是否讀到末尾,如果未讀到末尾,則返回假,然後求反

else

break

;case in_word:if(

!isalpha

(ch)

)//else keeping in_word

else

}else

*p = ch;

break

;case out_word:if(

isalpha

(ch)&&*

(p -1)

==' '

)//else keeping out_word

else p--

;break;}

p++;}

}fclose

(fp)

;}

c 翻轉乙個長句中的每個單詞

問題 輸入 how are you baby 輸出 woh era uoy ybab include include define swap a,b a b b a a b char sentencereverse char input if r 0 break return inp int mai...

C語言 最長單詞

演算法提高 最長單詞 時間限制 1.0s 記憶體限制 512.0mb 編寫乙個函式,輸入一行字元,將此字串中最長的單詞輸出。輸入僅一行,多個單詞,每個單詞間用乙個空格隔開。單詞僅由小寫字母組成。所有單詞的長度和不超過100000。如有多個最長單詞,輸出最先出現的。樣例輸入 i am a studen...

單詞計數(C語言)

題目 統計行數,單詞數與字元數,這裡單詞的定義是不包含任何空格,換行,製表符的字串行。方法1 該方法是自己沒看書中 根據 塊下面思路提示編寫的 include include define out 0 define in 1 intmain else if state in printf 輸入的字元...