为了账号安全,请及时绑定邮箱和手机立即绑定

这里出错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 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信