台灣最大程式設計社群網站
線上人數
961
 
會員總數:245985
討論主題:189565
歡迎您免費加入會員
討論區列表 >> C/C++ >> C++ 如何忽略除了英文字母以外的符號
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C++ 如何忽略除了英文字母以外的符號
價值 : 10 QP  點閱數:4620 回應數:6
樓主

豪豬
初學者
1 38
790 79
發送站內信

假設我有一篇文章
<textarea name="code" class="c#"

Are you married?

Yes, I am. My work is very important to me so I make sure nothing interferes with my giving 100% to my job. I do whatever's necessary to complete my work on schedule.

</textarea>
我現在想去抓取這一篇文章有幾個英文字母
我用的方法如下


可是這樣的算法,他會連像符號『, . % 』等等都算進去
我如何忽略非英文字母以外的符號呢?

搜尋相關Tags的文章: [ 符號 ] , [ 字母 ] , [ 英文 ] , [ 標點符號 ] ,
本篇文章發表於2007-05-28 11:53
== 簽名檔 ==
------------------------------------
我還在學習,
ˉˉˉ學習如何超越自我..
1樓
回應

小叮噹
捐贈 VP 給 小叮噹 檢舉此回應
利用 ASCII 碼 作判斷

ex :
A~Z ASCII碼 分別為 65~90
a~z ASCII碼 分別為 97~122

判斷方式為,若 ch>=65 且 ch<=90 ,則 ch 為大寫字元
而若 ch>=97 && ch<=122 ,則 ch 為小寫字元
本篇文章回覆於2007-05-28 15:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

豪豬
檢舉此回應
感謝大大你的回應,但我的作法是利用isalpha() 斷判字元內是否為英文字母

讀字元的問題解決了,但我又有另一種狀況..
讀字串呢?
我目前的作法是

以底下一句英文句子為例

Are you married ?

他會判斷共有4個字串,但後面的 『?』並不應該算在字串裡面
如何忽略呢?
我遇到的問題是我只想把英文單字當作一個字串,符號不算
本篇文章回覆於2007-05-28 16:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Raymond
檢舉此回應
isalpha() 無法分別數字字元及符號. 要判斷是否符號, 用 ispunct().

用 ASCII 碼編碼的特性將會降低程式碼的可攜性, 無法用在非 ASCII 碼的系統上.

> string str ;
> ifstream inx( "檔名" ) ;
> while ( inx >> str ){
> count++ ; }

這裡讀的「字串」是以空格 (white space) 來分隔的字元系列.
如果你不想包括由某些字元組成的字串, 自己在 count++ 之前做個測試.

本篇文章回覆於2007-05-29 20:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

豪豬
檢舉此回應
大大你可能誤解我的意思了~


由於我是想算這裡面有幾個英文單字組成,像


不知道會不會解釋的很模糊呢?
本篇文章回覆於2007-05-30 21:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

Raymond
檢舉此回應
我沒有誤解, 但可能說得不夠清楚. 我的意思是說在 ++count 之前要判斷 'str' 是不是個英文單字:



如果要做複雜一點的判斷, 可寫成函式, 像這樣:


本篇文章回覆於2007-05-30 22:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

Raymond
檢舉此回應
自我更改一下, 上面 IsWord() 裡的參數應該是 const reference:


本篇文章回覆於2007-05-30 22:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.