A. C語言中如何判斷數據類型
一般來說,我們不會直接使用ASCII碼來處理,因為這樣不夠直觀。比如你說的判定輸入是否是字母,是否是數字,那麼有個比較直觀的方法來處理。如果你看過ASCII碼表,那麼你就知道字數和字母在ASCII碼表中都是連續的,所以這個就比較好解決了。
判定字元ch是否是數字:
if(ch>='0' && ch<='9')
判定字元ch是否是字母:
if(ch>='a' && ch<='z' || ch>='A' && ch<='Z')
當然,有已經定義好的庫函數用來判定是否數字和字母,不要加載入頭文件<ctype.h>
判定字元ch是否是數字:
if(isalnum(ch));
判定字元ch是否是字母:
if(isalpha(ch));
這兩個函數都是判定成立,結果是true也就是1,判定不成立,結果是false,也就是0.
B. vb中如何判斷變數的數據類型
typename
TypeName 函數 返回一個 String,提供有關變數的信息。語法TypeName(varname)必要的 varname 參數是一個 Variant,它包含用戶定義類型變數之外的任何變數。說明TypeName 所返回的字元串可以是下面列舉的任何一個字元串:返回字元串變數對象類型類型為 objecttype 的對象Byte位值Integer整數Long長整數Single單精度浮點數Double雙精度浮點數Currency貨幣Decimal十進制值 Date日期String字元串布爾布爾值Error錯誤值Empty未初始化Null無效數據Object對象Unknown類型未知的對象 Nothing不再引用對象的對象變數如果 varname 是一個數組,則返回的字元串可以是任何一個後面添加了空括弧的可能的返回字元串(或 Variant)。例如,如果 varname 是一個整數數組,則 TypeName 返回 "Integer()"。
C. 如何判斷數據類型
做不到
理論上也沒可能:你輸入了個1,它可能是double型的,也可能是int型的,還有可能是float型或者byte型,都有可能,char型活String型也是有可能的
D. C 語言怎麼判斷傳入數據的類型
通過約定參數類型或者約定參數格式,確定傳入數據的類型。
1、 大多數情況下,參數類型都是確定的,在函數定義時就可以確定類型。此種情況下,不需要函數本身判斷,編譯器會做判斷或轉換。
如
voidfunc(intn);
聲明這樣的函數,參數為int型,當調用時如果實參不是int型,C編譯器會嘗試轉換為int型,如果轉換失敗,則編譯報錯。
2、 對於參數個數和類型不確定的情況,也就是不定參數形式,一般增加一個格式字元串,通過格式字元串解析後續有幾個參數,每個類型是什麼。
典型例子為printf:
intprintf(constchar*fmt,...);
在printf中,後續參數類型及個數都是不確定的,printf會根據參數fmt中包含的格式字元串,來確定後續的參數類型。 比如傳入fmt為"%s%d%lu",那麼printf就會嘗試在後續參數中讀取三個值,類型分別為char *, int,和unsigned long。
除此外,也可以採用其他方式進行約定。
E. 如何判斷js中的數據類型
最常見的判斷方法:typeof
alert(typeof a) ------------> string
alert(typeof b) ------------> number
alert(typeof c) ------------> object
alert(typeof d) ------------> object
alert(typeof e) ------------> function
alert(typeof f) ------------> function
其中typeof返回的類型都是字元串形式,需注意,例如:
alert(typeof a == "string") -------------> true
alert(typeof a == String) ---------------> false
另外typeof 可以判斷function的類型;在判斷除Object類型的對象時比較方便。
判斷已知對象類型的方法: instanceof
alert(c instanceof Array) ---------------> true
alert(d instanceof Date)
alert(f instanceof Function) ------------> true
alert(f instanceof function) ------------> false
注意:instanceof 後面一定要是對象類型,並且大小寫不能錯,該方法適合一些條件選擇或分支。
根據對象的constructor判斷: constructor
alert(c.constructor === Array) ----------> true
alert(d.constructor === Date) -----------> true
alert(e.constructor === Function) -------> true
注意: constructor 在類繼承時會出錯
eg,
function A(){};
function B(){};
A.prototype = new B(); //A繼承自B
var aObj = new A();
alert(aobj.constructor === B) -----------> true;
alert(aobj.constructor === A) -----------> false;
而instanceof方法不會出現該問題,對象直接繼承和間接繼承的都會報true:
alert(aobj instanceof B) ----------------> true;
alert(aobj instanceof B) ----------------> true;
言歸正傳,解決construtor的問題通常是讓對象的constructor手動指向自己:
aobj.constructor = A; //將自己的類賦值給對象的constructor屬性
alert(aobj.constructor === A) -----------> true;
alert(aobj.constructor === B) -----------> false; //基類不會報true了;
通用但很繁瑣的方法: prototype
alert(Object.prototype.toString.call(a) === 『[object String]』) -------> true;
alert(Object.prototype.toString.call(b) === 『[object Number]』) -------> true;
alert(Object.prototype.toString.call(c) === 『[object Array]』) -------> true;
alert(Object.prototype.toString.call(d) === 『[object Date]』) -------> true;
alert(Object.prototype.toString.call(e) === 『[object Function]』) -------> true;
alert(Object.prototype.toString.call(f) === 『[object Function]』) -------> true;
F. java如何判斷數據類型
給你一個封裝好的方法,只要把excel中的cell放入就會返回對應的值,裡面有類型檢測
public static String getExcelCellValue(HSSFCell cell) {
String ret = "";
// if (HSSFDateUtil.isCellDateFormatted(cell)) {
// Date date = cell.getDateCellValue();
// ret = "" + date.getTime();
// } else
try {
if (cell == null) {
ret = "";
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
ret = cell.getStringCellValue().trim();
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
ret = "" + cell.getNumericCellValue();
String temp = ret.substring(ret.indexOf(".") + 1, ret.length());
try {
if (Integer.parseInt(temp) == 0) {
ret = ret.substring(0, ret.indexOf("."));
}
} catch (Exception ex) {
}
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA) {
ret = cell.getCellFormula();
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_ERROR) {
ret = "" + cell.getErrorCellValue();
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {
ret = "" + cell.getBooleanCellValue();
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_BLANK) {
ret = "";
}
} catch (Exception ex) {
ex.printStackTrace();
ret = "";
}
return ret;
}
G. 如何正確判斷js數據類型
了解js的都知道, 有個typeof 用來判斷各種數據類型,有兩種寫法:typeof xxx ,typeof(xxx)
如下實例:
typeof 2 輸出 number
typeof null 輸出 object
typeof {} 輸出 object
typeof [] 輸出 object
typeof (function(){}) 輸出 function
typeof undefined 輸出 undefined
typeof '222' 輸出 string
typeof true 輸出 boolean
這裡麵包含了js裡面的五種數據類型 number string boolean undefinedobject和函數類型 function
看到這里你肯定會問了:我怎麼去區分對象,數組和null呢?
接下來我們就用到另外一個利器:Object.prototype.toString.call
這是對象的一個原生原型擴展函數,用來更精確的區分數據類型。
我們來試試這個玩兒意兒:
var gettype=Object.prototype.toString
gettype.call('aaaa')輸出 [object String]
gettype.call(2222) 輸出 [object Number]
gettype.call(true) 輸出 [object Boolean]
gettype.call(undefined) 輸出 [object Undefined]
gettype.call(null) 輸出 [object Null]
gettype.call({}) 輸出 [object Object]
gettype.call([]) 輸出 [object Array]
gettype.call(function(){}) 輸出 [object Function]
看到這里,剛才的問題我們解決了。
其實js 裡面還有好多類型判斷
[object HTMLDivElement] div 對象 ,
[object HTMLBodyElement] body 對象,
[object Document](IE)或者
[object HTMLDocument](firefox,google) ......
各種dom節點的判斷,這些東西在我們寫插件的時候都會用到。
可以封裝的方法如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var gettype=Object.prototype.toString
var utility={
isObj:function(o){
return gettype.call(o)=="[object Object]";
},
isArray:function(o){
return gettype.call(o)=="[object Array]";
},
isNULL:function(o){
return gettype.call(o)=="[object Null]";
},
isDocument:function(){
return gettype.call(o)=="[object Document]"|| [object HTMLDocument];
}
........
}
H. java怎麼判斷一個數據是什麼類型
先得到對象的類位元組碼Class對象,通過Class對象再得到類型,而後進行判斷是不原始類型方法可能是isPrimitive或數組isArray()。
I. Excel:如何判斷一個單元格中的數據類型
J. 要怎麼判斷什麼時候用什麼數據類型
2.各種數據類型介紹
2.1整型
整形包括短整型、整形和長整形。
2.1.1短整形
short a=1;
2.1.2整形
一般佔4個位元組(32位),最高位代表符號,0表示正數,1表示負數,取值范圍是-2147483648~2147483647,在內存中的存儲順序是地位在前、高位在後,例如0x12345678在內存中的存儲如下:
地址:
數據:78563412
定義:用int關鍵字,舉例如下:
int a=6;
2.1.3長整形
long a=10;
2.2浮點型
浮點型包括單精度型和雙精度型。
2.2.1單精度型
浮點型,又稱實型,也稱單精度。一般佔4個位元組(32位),
float a=4.5;
地址:
數據:00009040
2.2.2雙精度型
一般佔8個位元組(64位)
doublea=4.5;
地址:
數據:0000000000001240
2.3字元類型
在各種不同系統中,字元類型都佔一個位元組(8位)。定義如下:
char c='a';
也可以用字元對應的ASCII碼賦值,如下:
char c=97;
3.數據類型與「模子」
short、int、long、char、float、double 這六個關鍵字代表C 語言里的六種基本數據類型。
怎麼去理解它們呢? 舉個例子:見過藕煤球的那個東西吧?(沒見過?煤球總見過吧)。那個東西叫藕煤器,拿著它在和好的煤堆里這么一咔,一個煤球出來了。半徑12cm,12 個孔。不同型號的藕煤器咔出來的煤球大小不一樣,孔數也不一樣。這個藕煤器其實就是個模子。
現在我們聯想一下,short、int、long、char、float、double 這六個東東是不是很像不同類型的藕煤器啊?拿著它們在內存上咔咔咔,不同大小的內存就分配好了,當然別忘了給它們取個好聽的名字。
在32 位的系統上short 咔出來的內存大小是2 個byte;
int 咔出來的內存大小是4 個byte;
long 咔出來的內存大小是4 個byte;
float 咔出來的內存大小是4 個byte;
double 咔出來的內存大小是8 個byte;
char 咔出來的內存大小是1 個byte。
(注意這里指一般情況,可能不同的平台還會有所不同,具體平台可以用sizeof 關鍵字測試一下)
很簡單吧?咔咔咔很爽吧?是很簡單,也確實很爽,但問題就是你咔出來這么多內存塊,你總不能給他取名字叫做x1,x2,x3,x4,x5…或者長江1
號,長江2
號…吧。它們長得這么像(不是你家的老大,老二,老三…),過一陣子你就會忘了到底哪個名字和哪個內存塊匹配了(到底誰嫁給誰了啊?^_^)。所以呢,給
他們取一個好的名字絕對重要。下面我們就來研究研究取什麼樣的名字好。
4.變數的命名規則
1)命名應當直觀且可以拼讀,可望文知意,便於記憶和閱讀。
標識符最好採用英文單詞或其組合,不允許使用拼音。程序中的英文單詞一般不要太復雜,用詞應當准確。
2)命名的長度應當符合「min-length && max-information」原則。
C 是一種簡潔的語言, 命名也應該是簡潔的。例如變數名MaxVal 就比MaxValueUntilOverflow 好用。標識符的長度一般不要過長,較長的單詞可通過去掉「母音」形成縮寫。
另外,英文詞盡量不縮寫,特別是非常用專業名詞,如果有縮寫,在同一系統中對同一單詞必須使用相同的表示法,並且註明其意思。
3)當標識符由多個片語成時,每個詞的第一個字母大寫,其餘全部小寫。比如:
int CurrentVal;
這樣的名字看起來比較清晰,遠比一長串字元好得多。
4)盡量避免名字中出現數字編號,如Value1,Value2 等,除非邏輯上的確需要編號。比如驅動開發時為管腳命名,非編號名字反而不好。
初學者總是喜歡用帶編號的變數名或函數名,這樣子看上去很簡單方便,但其實是一顆顆定時炸彈。這個習慣初學者一定要改過來。
5)對在多個文件之間共同使用的全局變數或函數要加范圍限定符(建議使用模塊名(縮寫)作為范圍限定符)。
(GUI_ ,etc)標識符的命名規則:
6)標識符名分為兩部分:規范標識符前綴(後綴) + 含義標識。非全局變數可以不用使用范圍限定符前綴。