注册 登录
编程论坛 C++教室

关于字符串求最大值的问题

s476667902 发布于 2014-11-23 22:45, 1014 次点击
这个程序是输入3个国家名,比较字符串大小,我的问题是,我输入“japan england germany”,为什么最大值是japan
求解释判断字符串最大值的根据。

#include<iostream>
#include<string>
using namespace std;
int main()
{void max_string(char str[][30],int i);
char country_name[3][30];
int i;
for(i=0;i<3;i++)
cin>>country_name[i];
max_string(country_name,3);
return 0;
}
void max_string(char str[][30],int n)
{char string[30];
int i;
strcpy(string,str[0]);
for(i=0;i<n;i++)
if(strcmp(str[i],string)>0)
strcpy(string,str[i]);
cout<<"the largest country:"<<string<<endl;
}
4 回复
#2
zklhp2014-11-23 23:25
C++程序写的和C一样。。

我觉得这样写才好看

程序代码:

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::vector;
using std::sort;

int main(void)
{
    vector<string> vec_str;
    string tmp;

    while (cin >> tmp)
    {
        vec_str.push_back(tmp);
    }
    sort(vec_str.begin(), vec_str.end());
    cout << "the largest country:" << *(vec_str.end()-1) << endl;
    return 0;
}

#3
zklhp2014-11-23 23:29
至于你的问题 比较是按照字典顺序的 也就是字典里面哪个在前面 程序里面哪个就在前面

你查查字典 这三个词是不是japan在最后
#4
wp2319572014-11-24 09:00
字典顺序就是首先比较首字符 首字符大即大 小即小 如果相同则比较下一个,如果再相同再比较下一个,,,,,,,,,,
#5
幽园香客2014-11-24 14:34
这个程序是输入3个国家名,比较字符串大小,我的问题是,我输入“japan england germany”,为什么最大值是japan
求解释判断字符串最大值的根据。

字符串大小比较,也就是一个一个字符的ASIC值相比较的。因此'j' > 'g' > 'e',japan也就最大
1