亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

這里出錯while(i<strlen(exp)&&state),為什么?

這里出錯while(i<strlen(exp)&&state),為什么?

PHP C
慕姐8265434 2023-03-15 21:17:41
Status matching(SqStack &S,string &exp){int state=1;int i=0;SElemType e;while(i<strlen(exp)&&state)//這里出錯。//cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
查看完整描述

2 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

string 是C++里的字符串類型
strlen 是對C風格字符串來使用的,也就是說 char [] 和string完全是不同類型的
strlen根本不認識 string 是什么,所以報錯

while(i<exp.size()&&state);
這樣就行了,string類型自帶測試大小的函數。

查看完整回答
反對 回復 2023-03-18
?
森林海

TA貢獻2011條經驗 獲得超2個贊

char
b[]={'a'};
只會為b分配一個char的空間,后面的內容是不可預知的,所以'\0'可能會出現在后面的任何一個位置,而strlen()函數又是以'\0'為標志來統計的。所以這樣輸出的數字無法預知。

查看完整回答
反對 回復 2023-03-18
  • 2 回答
  • 0 關注
  • 115 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號