C++编译问题,求大神
解决时间 2021-01-09 02:29
- 提问者网友:萬裏夢魂
- 2021-01-08 02:26
int main()
{
int n;
vector v;
string s;
cin>>n;
for(int i=0;i {
cin>>s;
v.push_back(s);
}
int size=v.size();
for(i=0;i {
char *str=reverse(v[i].c_str());
v[i].erase(0,v[i].size());
v[i].insert(0,str);
cout< delete []str;
}
return 0;
}
char* reverse(const char *s)
{
int len=strlen(s);
char *str=new char[len+1];
strcpy(str,s);
char* p=str,*q=p+len-1;
char c;
while(p!=q&&p {
c=*p;
*p=*q;
*q=c;
p++;
q--;
}
return str;
}
Main.cc: In function 'int main()': Main.cc:20:6: error: name lookup of 'i' changed for ISO 'for' scoping [-fpermissive] Main.cc:20:6: note: (if you use '-fpermissive' G++ will accept your code) Main.cc: In function 'char* reverse(const char*)': Main.cc:32:18: error: 'strlen' was not declared in this scope Main.cc:34:14: error: 'strcpy' was not declared in this scope
最佳答案
- 二级知识专家网友:刺眼的青春
- 2021-01-08 03:19
只该了语法错误,没看逻辑
#include
#include
#include
using namespace std;
char* reverse(const char *s); // 声明函数
int main()
{
int n;
vector v;
string s;
int i; // i在这里定义
cin>>n;
for(i=0;i
{
cin>>s;
v.push_back(s);
}
int size=v.size();
for(i=0;i
{
char *str=reverse(v[i].c_str());
v[i].erase(0,v[i].size());
v[i].insert(0,str);
cout<
delete []str;
}
return 0;
}
char* reverse(const char *s)
{
int len=strlen(s);
char *str=new char[len+1];
strcpy(str,s);
char* p=str,*q=p+len-1;
char c;
while(p!=q&&p
{
c=*p;
*p=*q;
*q=c;
p++;
q--;
}
return str;
}
全部回答
- 1楼网友:可惜感動不是心動
- 2021-01-08 06:28
for(i=0;i
- 2楼网友:吃貨一枚
- 2021-01-08 05:44
for(int i=0....)
for中的饿int i作用域仅限for循环,所以你下面这个for中也需要(int i = 0...)
- 3楼网友:魔法小仙子
- 2021-01-08 04:30
#include <iostream>
using namespace std;
int main()
{
for(int i=0; i!=9; ++i){
for(int j=0; j!=9; ++j){
if(i==j || i+j==8) cout << "x";
else cout << " ";
}
cout <<endl;
}
return 0;
}
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯