
c++出现lvalue required as left operand of assignment错误
while(n>=0){str3[n]='0';//提示:返回字符引用。。。这句出现错误n=str3.Find('');}classMyStr{public:MyStr(...
while(n>=0)
{
str3[n]='0'; // 提示:返回字符引用。。。这句出现错误
n=str3.Find(' ');
}
class MyStr {
public:
MyStr( );//定义构造函数
nt Find(char ch); //查找指定字符,找到的话返回位置,没找到返回-1
string p;
};
int MyStr::Find(char ch)
{int i;
i=p.find(ch);
return i;
}
//测试代码3: 输入一个字符串,如果'0'开头,则把所有空格替换成'0'
MyStr str3;
cin >> str3;
if(str3>="0" && str3<"1")
{
int n=str3.Find(' ');
while(n>=0)
{
str3[n]='0'; // 提示:返回字符引用
n=str3.Find(' ');
}
} 展开
{
str3[n]='0'; // 提示:返回字符引用。。。这句出现错误
n=str3.Find(' ');
}
class MyStr {
public:
MyStr( );//定义构造函数
nt Find(char ch); //查找指定字符,找到的话返回位置,没找到返回-1
string p;
};
int MyStr::Find(char ch)
{int i;
i=p.find(ch);
return i;
}
//测试代码3: 输入一个字符串,如果'0'开头,则把所有空格替换成'0'
MyStr str3;
cin >> str3;
if(str3>="0" && str3<"1")
{
int n=str3.Find(' ');
while(n>=0)
{
str3[n]='0'; // 提示:返回字符引用
n=str3.Find(' ');
}
} 展开
4个回答
展开全部
c语言 提示:lvalue required as left operand of assignment,是设置错误造成的,解决方法如下:
1、首先打开C语言编程软件,来编写一个程序。
2、对写好的程序进行编译,发现弹出窗口出现Errors。说明程序有错误要进行改正。
3、按照这条准则可以发现程序中第六行b=36,这条语句中最后不是以分号(;)结尾而是以逗号(,)结尾,所以是出现的第一个错误。所以要把逗号改为分号。
4、改正之后继续进行编译,还出现错误,上面现实‘average’的字样说明错误就和这个提示的字符有关。
5、这时需要到程序中去找到提示的单词,发现第八行的average=sum/2.0与第二行定义的aver不同,需要把这个变量修改成一个变量。把average修改成第二行定义的aver。
6、修改完成后,继续编译这时程序就出现成功的提示了。
展开全部
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <iostream> #include<string> using namespace std; class MyStr { public : MyStr( int n ) //定义构造函数 { p =string(n, ' ' );} //<--p必须初始化,分配空间 int Find( char ch); //查找指定字符,找到的话返回位置,没找到返回-1 string p; }; int MyStr::Find( char ch) { int i; i=p.find(ch); return i; } void main() { MyStr str3(10); int n; while ( (n=str3.Find( ' ' )) >=0) { str3.p[n] = '0' ; //<--成员变量p才是string! } } |
本回答被提问者采纳
展开全部
意思是表达式中的=号左边应该有个运算符(或者变量)。
展开全部
str3是个什么类型啊?字符数组?还是string?还是??
更多追问追答
追问
已补充。
我感觉有关的就这些了
已补充。
我感觉有关的就这些了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询