如何在c和c 中判斷變數是否為空

2021-06-25 14:47:34 字數 4412 閱讀 7934

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中判斷有string變數為不為空是怎麼些的

比如 string str str變數 if str 為空 或者 if str.size 0 為空 c 中怎麼判斷一個string型別的字串變數是否為數字 c庫提供了一些函式,可以用來判斷一個字元是不是數字。不過並沒有提供用來判斷一個字串的函式。所以你需要自己遍歷字串,用ctype庫提供的函式來判斷...

如何判斷jquery是否為空,如何判斷jquery返回的物件不為空

var obj 標籤id if obj length 0 else 如何判斷jquery返回的物件不為空 如果是一個空物件 var obj obj false true 所以可以這樣 if obj else 如果obj不是一個空物件 var obj obj true true 原理同上 或者 var...

C 中如何判斷物件是否屬於某個類

c 語言判斷一個物件有兩種機制 在執行時判斷,使用if else int i if typeid i typeid int cout i is int endl else cout i is not int endl 在編譯時判斷,使用過載或者特化 template class t void fun...