大众信息网

C++编译问题,求大神

答案:4  mip版
解决时间 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; }

我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯