编程实现从键盘输入5个国名(每个国名最长80个字符),
找出并输出按字典顺序排在最前面的国名
要求:
输入提示信息为:"Input
five countries' names:\n"
输出格式为:"The minimum is:%s\n"
这是我们的题目
以下是我变成内容
#include <iostream>
#include <string>using namespace std;
int main(){string a[5];
string t;
int i,j;
cout<<"Input five countries' names:\n";
for(i=0;i<5;i++)
{cin>>a[i]; for(i=0;i<4;i++)for(j=1;j<5;j++){if(strcmp(a[i],a[j])>0){t=a[i];a[i]=a[j];a[j]=t;}}}
for(i=0;i<5;i++)
cout<<a[i]\n;
return 0;}
但是遇到个错误
C:\Users\Administrator\Desktop\Cpp1.cpp(15) : error C2664: 'strcmp' : 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执行 cl.exe 时出错.
不懂这是什么错,真心求教,本人大一新生学C++,求救啊~~!
找出并输出按字典顺序排在最前面的国名
要求:
输入提示信息为:"Input
five countries' names:\n"
输出格式为:"The minimum is:%s\n"
这是我们的题目
以下是我变成内容
#include <iostream>
#include <string>using namespace std;
int main(){string a[5];
string t;
int i,j;
cout<<"Input five countries' names:\n";
for(i=0;i<5;i++)
{cin>>a[i]; for(i=0;i<4;i++)for(j=1;j<5;j++){if(strcmp(a[i],a[j])>0){t=a[i];a[i]=a[j];a[j]=t;}}}
for(i=0;i<5;i++)
cout<<a[i]\n;
return 0;}
但是遇到个错误
C:\Users\Administrator\Desktop\Cpp1.cpp(15) : error C2664: 'strcmp' : 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执行 cl.exe 时出错.
不懂这是什么错,真心求教,本人大一新生学C++,求救啊~~!