1樓:風若遠去何人留
c/c++中,任何一個變數在定義後即擁有自身的記憶體空間,而記憶體空間中是一定有值的,所以不存在絕對意義上的空值。 一般來說,判斷空值都是判斷定以後,是否被賦值過,所以只需要判斷變數值是否還是初始值即可。
區分變數型別,有一些常用的初始化情況:
1、 指標型別。
指標型別一般被初始化為null, 這是一個定義在標準庫標頭檔案中的巨集,其值為(void *)0。所以對於指標p一般判斷空值方式為
p==null
如果相等,則為空。
2、 整型系列。
包括int, short, char, long,以及對應的無符號型別。
整型並沒有通用的初始化方式,一般初始化為0值或者非法值。即在程式執行中不會出現的賦值,比如負值或者最大值等。
當定義type var=init_value;
可以用 var == init_value來判斷是否為空(被賦值過)。 需要注意的是,如果init_value選擇不當,導致在執行中可能被賦值(非初始化)初始值,那麼這個判斷就會失效。
3、字串/字元指標:
一般初始化為全0,可以通過判斷長度,或者第一個字元值,來判斷是否為空。如字串char s[n]:
strlen(s)==0 或者 s[0]=='\0' 效果相同,都可以起到判斷效果。
2樓:硪丨曖戀
指標變數為空 if(p==null)
static 變數為空 if(p==0)
在c++語言裡怎麼判斷字串為空
3樓:楚軒的逝我
#include
using namespace std;
int main(){
string m;
if(m != "")
cout<<1<
大概像這樣?你問的應該是string吧,別告我是c串,其實也差不多
在c++中判斷有一個 string變數為不為空是怎麼些的
4樓:
比如 : string str; //str變數;
if(str == "") //為空;
或者 if(str.size() == 0) //為空;
c++ 引用傳遞物件 如何判斷是否是null
5樓:
你的node &node是node變數的引用,不需要if(node!=null),這種null判斷一般用於指標判斷。
printinorder(node.lchild);
這裡,你node.lchild應該是一個指標,你的printinorder要求傳值,你需要解引用,即:
printinorder(*(node.lchild));
若是傳入node *node的話,才需要判斷node!=null,而傳指標的話,除非你裡面要修改指標指向,否則也不需要node *&node(該用法,可以修改指標指向,相當於node **node)。
6樓:匿名使用者
void printinorder(node& node)}
c+++string類如何判斷字串為空
7樓:風若遠去何人留
string類是c++stl類之一,有很豐富的介面。
string類為空,實際也就是元素為0個。 可以按照如下方式判斷:
1、string類有自己的成員函式empty, 可以用來判斷是否為空。
string s;
if(s.empty())//成立則為空
...2、判斷字串長度。如果長度為0,則為空。
string s;
if(s.length()==0)//成立則為空...3、與空串比較,如果相等則為空。
string s;
if(s=="")//成立則為空
...幾種方法中,empty函式是效率最高也是最常用的一種。
8樓:匿名使用者
bool empty() const;
the member function returns true for an empty controlled sequence.
string a;
if(a.empty())
printf("empty");
9樓:匿名使用者
string == “”
在c++中函式empty()怎麼使用,判斷字串是否為空,請問怎麼判斷??
10樓:紫色夢幻
string s = "";if (s.empty())
else
11樓:
#include
#include
#include
using namespace std;
int main()//主函式沒有返回值
//empty()是string類的方法,只能被呼叫
用c語言怎麼判斷一個字串是否為空?
12樓:匿名使用者
空格和字串為空的概念本來就不一樣,
如樓上所說空格本來就代表一
專個字元屬,
而空字串直接為"\0"
如果你要把空格的字串也定義為空字串的話就要加判斷
空格的ascii碼為32
你只需要再多加一個遍歷判斷就ok
int isempty = 0;
int length = strlen(變數);
int n;
//遍歷整個字串,如果全為空格,則返回字串也為空for(n=0;n printf("字串為空"); else if(isempty) printf("字串為空"); else printf("字串不為空"); 13樓:迷惘 空格和字元來串為空的概念本源來就不一樣, 如樓上所說bai空格本來就代du表一個字元zhi,而空字串直接為"\0" 如果你要把dao空格的字串也定義為空字串的話就要加判斷 空格的ascii碼為32 你只需要再多加一個遍歷判斷就ok int isempty = 0; int length = strlen(變數); int n; //遍歷整個字串,如果全為空格,則返回字串也為空for(n=0;n printf("字串為空"); else if(isempty) printf("字串為空"); else printf("字串不為空"); 14樓:滄海雄風 空格也算字元的 所以算長度沒毛病 15樓: 空字元來 串的長度為0,那就是自說第一個字元是bai'\0',所以可以用下du面的**zhi行判斷: char str1="",str2="abc"; printf(str1[0]=='\0' ? "str1是空字串\n" : "str1是非空dao字串\n"); printf(str2[0]=='\0' ? "str2是空字串\n" : "str2是非空字串\n"); 16樓:匿名使用者 空格不算是空字bai符串,str=""這樣的du才算zhi是空字串,裡面什麼都沒dao有,而str=" "是有內內容了,這個str儲存了容一個字元(空格),如果你要把空格也算是空字串,那麼要稍作修改: char str = " "; int len = strlen(str), i = 0; if (len > 0) 17樓: 如果復你輸入了空格,字串嚴格制 來說就應該不為空了,空格也是有對應的ascii碼值的,32!char的儲存範圍是0~255(ascii)間的字元都可以存在char型資料中。因此你輸入一個空格後這個字串就不為空了,這個字串實際是" \0",一個空字串相當於"\0",看到區別了嗎? 空格也是一個字元啊!這點必須要明確! 18樓:匿名使用者 空格也是一個字元,不會判斷不出來的 這個方法就挺好 19樓:匿名使用者 取長度吧,長度=0,就是空的 20樓:匿名使用者 #include #include int main(void) c 判斷文字檔案為空,必須要先讀一下檔案 讀一個字元 才能判斷是否為空。剛開啟檔案時,檔案狀態標識都是初始化狀態,eof 函式是根據檔案狀態標識來判斷當前是否到了檔案尾,而不是用來判斷檔案是否為空。當讀取檔案資料時,遇到檔案尾時,系統會更改檔案狀態標識為檔案尾,同時,返回eof標誌。include ... 用字串長度測試函式strlen str 如果自字串為空,則返回值為0 如果你輸入bai了空格,字串嚴du格來說zhi就應該不為空了,空格也是有dao對應的ascii碼值內 的,32!char的儲存範圍是容0 255 ascii 間的字元都可以存在char型資料中。因此你輸入一個空格後這個字串就不為空... 1 首先在duc語言中,long long 是c99標準對整形類zhi型做的擴充套件,dao每個long long型別的變數佔8位元組版,64位。如下圖使用 lld輸出。權 2 這種輸出方法的結果如下圖所示,可以看到輸出結果是0,而很明顯輸出的結果不應該為零,也就是說輸出結果是錯誤的。3 這時要看下...c如何判斷文字檔案為空
用c語言怎麼判斷字串是否為空用C語言怎麼判斷一個字串是否為空?
c語言中,怎麼判斷變數的型別 如何判斷變數是int還是l