#include<iostream> #include<string> #include<cstring> using namespace std; int main(){ int N,len[100]; string str[100]; char max_str[80]; cin>>N; for(int i=0;i<N;i++){ cin>>str[i]; } for(int i=0;i<N;i++){ int len[i]=strlen(str[i].c_str()); } int max=len[0]; for(int i=0;i<N;i++){ if(max<len[i]){ max=len[i]; max_str=str[i].c_str; } } cout<<"The longest is : "<<*max_str<<endl; return 0; }
时间: 2024-03-25 19:42:10 浏览: 104
这段代码仍然存在一些问题:
1. 在第二个 for 循环中,应该是 len[i]=strlen(str[i].c_str());,而不是 int len[i]=strlen(str[i].c_str());。
2. 在第四个 for 循环中,应该是 max_str=str[i].c_str();,而不是 max_str=str[i].c_str;。因为 c_str() 函数返回的是一个 char* 类型的指针,需要加上括号来调用。
另外,建议将 char max_str[80] 改为 string max_str,这样可以避免一些指针操作的问题。
下面是修改后的代码:
```cpp
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main(){
int N,len[100];
string str[100];
string max_str;
cin>>N;
for(int i=0;i<N;i++){
cin>>str[i];
}
for(int i=0;i<N;i++){
len[i]=strlen(str[i].c_str());
}
int max=len[0];
for(int i=0;i<N;i++){
if(max<len[i]){
max=len[i];
max_str=str[i].c_str();
}
}
cout<<"The longest is : "<<max_str<<endl;
return 0;
}
```
希望对你有帮助!
阅读全文