PIXNET Logo登入

狐的窩

跳到主文

享受生活

部落格全站分類:圖文創作

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 12月 19 週三 201217:12
  • [C/C++] Check character is printable

程式人人會寫,各有巧妙不同,也因為是這樣,所以常常會有讓人意想不到的發展...
第一次看到下面的程式碼,整個人僵化了...
下列的程式碼用來判斷一個字元是否可視、可列印
int is_visual_char(unsigned char ch)
{
switch(ch)
{
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z':
case '~':
case '!':
case '@':
case '#':
case '$':
case '%':
case '^':
case '&':
case '*':
case '(':
case ')':
case '_':
case '+':
case '`':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '0':
case '-':
case '=':
case '{':
case '}':
case '[':
case ']':
case ':':
case '"':
case '|':
case ';':
case '\'':
case '\\':
case '<':
case ',':
case '>':
case '.':
case '?':
case '/':
{
return 1;
}
default:
break;
}
return 0;
}
再看到下列有人回覆ASCII裏1-31為控制字元,32是空格,33以上都是可視的,只需要判斷其ASCII大於32就行了。
int is_visual_char(unsigned char ch)
{
return ch > 32;
}
心理面直吶喊那127(DEL控制字元)是鬼嗎?
說真的,現在網路那麼方便,不是都 Google to coding,多小心驗證,應該可以得到對的答案。
附上維基百科 ASCII 說明網址( 前往 )
而且這簡單的功能,C/C++早就提供了函式可以用,根本無需重新製作新輪子。
原型:extern int isprint(char c);
用法:#include <ctype.h>
功能:判斷字元c是否為可列印字元(0x20-0x7e,含空格)
說明:當c為可列印字元時,返回非零值,否則返回零。
....Orz....
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(171)

  • 個人分類:Visual C++
▲top
  • 11月 15 週四 201216:21
  • 解決 ERROR C2440: 'initializing' : cannot convert from 'char *' to 'ATL::CStringT<BaseType,StringTraits>'

會發生 ERROR C2440: 'initializing' : cannot convert from 'char *' to 'ATL::CStringT' 的問題,是因為專案中的字元集設定為 UNICODE ,在編譯時,Preprocessor 在處理字串時,會自動用寬字元相關函式來處理,當窄寬互相混合處理時就會發生此錯誤。
解決方法:
專案 | 專案屬性 | 組態屬性 | 一般 | 字元集 此改選用 使用多位元組字元集
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(1,091)

  • 個人分類:Visual C++
▲top
  • 11月 15 週四 201216:18
  • 解決 ERROR C2065: 'AI_ADDRCONFIG' : undeclared identifier

1. 下載最新的 Microsoft SDK
2.  include 'Ws2tcpip.h'
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(370)

  • 個人分類:Visual C++
▲top
  • 11月 09 週五 201212:00
  • 解決 ERROR C2011: 'sockaddr' : 'struct' type redefinition

C/C++ 常讓人困擾的問題,header file先後順序,有時會讓人抓狂.....
要解決 error C2011: 'sockaddr' : 'struct' type redefinition 這問題,記得
the solution which always works is to include winsock2.h before windows.h
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(1,215)

  • 個人分類:Visual C++
▲top
  • 10月 29 週一 201212:23
  • 解決 ERROR LNK2019: 無法解析的外部符號 問題

錯誤:
ERROR LNK2019: 無法解析的外部符號 __imp__XXX@16 ,該符號在函數 "void __cdecl MyTest(unsigned int)" (?MySend@@YAXI@Z) 中被引用
解決方法:
專案 | 專案屬性 | 組態屬性 | 連結器 | 輸入 | 其他相依性 此輸入使用到的 Libray
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(1) 人氣(8,077)

  • 個人分類:Visual C++
▲top
  • 10月 29 週一 201212:12
  • 解決 ERROR C1083: msado15.dll No such file or directory 問題

錯誤:
ERROR C1083: msado15.dll No such file or directory 問題
解決方法:
1. 找到電腦中 msado15.dll 存放位置,例 Windows 7, which is located at C:\Program Files\Common Files\System\ado
2. 工具 | 選項 | 專案與方案 | VC++ 目錄 加入上列目錄
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(461)

  • 個人分類:Visual C++
▲top
  • 10月 29 週一 201212:08
  • 解決 ERROR C2812: 不支援將 #import 配合 /clr:pure 或 /clr:safe 使用

錯誤:
ERROR C2812: 不支援將 #import 配合 /clr:pure 或 /clr:safe 使用
解決方法:
專案 | 專案屬性 | 一般 | Common Language Runtime 支援 改選擇 Common Language Runtime 支援(/clr)
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(174)

  • 個人分類:Visual C++
▲top
  • 10月 29 週一 201212:02
  • 解決 ERROR D8016: '/MTd' 和 '/clr:pure' 的命令列選項不相容 問題

錯誤:
ERROR D8016: '/MTd' 和 '/clr:pure' 的命令列選項不相容
解決方式:
專案 | 專案屬性 | C/C++ | 程式碼產生 | 執行階段程式碼 改選擇 "多執行緒偵錯 DLL (/MDd)"
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(2,677)

  • 個人分類:Visual C++
▲top
1

文章搜尋

好康資訊

熱門文章

  • (16,019)Excel:如何讀取固定欄位值
  • (15,178)用 excel 來記錄體重及體脂肪
  • (336)紙模:史上最強的水管工 馬力歐
  • (11,740)Shell Script:運用 date 指令取得日期時間(Linux)
  • (7,234)Shell Script: 控制文字顏色
  • (1,927)Perl: 快速分解檔案路徑及名稱。 use File::Basename
  • (670)模型:鋼彈:Gundlander 鋼德勇士
  • (11,149)忘記PostgreSQL資料庫管理者密碼,要如何重新設定
  • (4,863)Oracle內建常用字串函數
  • (309)紙模:能天使貓型鋼彈

文章分類

toggle 資料庫 (5)
  • DB2 (8)
  • SQL Server (6)
  • MySQL (7)
  • Oracle (10)
  • PostgreSQL (6)
toggle 手工物製作 (3)
  • 模型 (25)
  • PaperCraft (110)
  • 手帳 (3)
toggle 學習心得 (3)
  • PMP (1)
  • 讀書心得 (2)
  • 學習心得 (17)
toggle 程式設計 (15)
  • 專案管理 (1)
  • Websphere (1)
  • HTML (3)
  • Visual C++ (8)
  • Windows 8 (1)
  • Java (20)
  • JSP (4)
  • Web (6)
  • C# (11)
  • Windows Scripting Host (1)
  • Shell Script (3)
  • ASP.NET (6)
  • WebPI (1)
  • PHP (5)
  • Perl (7)
toggle 生活綜合 (2)
  • 生活資訊 (73)
  • 生活雜記 (25)
toggle 網路資源 (2)
  • 圖像和圖示 (3)
  • 網路空間應用 (1)
toggle 軟體應用 (5)
  • Windows 8 (1)
  • CentOS (7)
  • excel (6)
  • iphone (25)
  • 虛擬軟體 (2)
  • 未分類文章 (1)

文章精選

個人資訊

mark528
暱稱:
mark528
分類:
圖文創作
好友:
累積中
地區:

參觀人氣

  • 本日人氣:
  • 累積人氣: