第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問使用相等運算符=比較C中的兩個字符串是否相等

請問使用相等運算符=比較C中的兩個字符串是否相等

C
Qyouu 2019-08-01 06:01:43
使用相等運算符=比較C中的兩個字符串是否相等int main (int argc, **argv){        if (argv[1] == "-hello")             printf("True\n");        else             printf("False\n");}# ./myProg -hello False為什么?我意識到strcmp(argv[1], "-hello") == 0返回真實.。但是為什么我不能使用相等運算符來比較兩個C字符串呢?
查看完整描述

3 回答

?
翻閱古今

TA貢獻1780條經(jīng)驗 獲得超5個贊

因為argv[1](例如)實際上是指向字符串的指針。所以你所做的只是比較指針。

查看完整回答
反對 回復 2019-08-02
?
墨色風雨

TA貢獻1853條經(jīng)驗 獲得超6個贊

您不能將C中的字符串與=進行比較,因為C編譯器實際上并不了解字符串以外的字符串。

編譯器看到與char*在任何一方,它都進行指針比較(比較存儲在指針中的地址)。


查看完整回答
反對 回復 2019-08-02
?
德瑪西亞99

TA貢獻1770條經(jīng)驗 獲得超3個贊

在……里面C因為,在大多數(shù)上下文中,數(shù)組“衰減為指向其第一個元素的指針”。


所以,當你有一個數(shù)組"foobar"在大多數(shù)情況下,它會退化為指針:


if (name == "foobar") /* ... */; /* comparing name with a pointer */

你想讓它比較數(shù)組的內(nèi)容帶著某物..你可以手動完成


if ('p' == *("foobar")) /* ... */; /* false: 'p' != 'f' */

if ('m' == *("foobar"+1)) /* ... */; /* false: 'm' != 'o' */

if ('g' == *("foobar"+2)) /* ... */; /* false: 'g' != 'o' */

或自動


if (strcmp(name, "foobar")) /* name is not "foobar" */;



查看完整回答
反對 回復 2019-08-02
  • 3 回答
  • 0 關注
  • 408 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號