码迷,mamicode.com
首页 > 其他好文 > 详细

字符串的比较

时间:2019-10-27 20:24:59      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:its   data   %s   strncmp   const   code   pen   har   rcp   

相关知识: strcmp(s1,s2)比较2个字符串的大小;

                  strcpy   (s1,s2)    将s2复制给s1;

                  strncmp(s1,s2,开始,结束)比较这个长度下的字符串。

                  char   s[N][N]  scanf("%s",s[i])   s[i][j] 表示第 i 个字符串的 第j个元素;

  应用 :

   本题          贪心+此知识 

 给出N个正整数,连接生成一个“大”的整数,求这个生成的大整数的最大值。

例如,给出4个整数:123, 124, 56, 90,可以连接生成的大整数有:1231245690, 1241235690, 5612312490, 9012312456, 9056124123等等,对本例,总共可以生成24个大整数。而其实最大整数是:9056124123

输入

第1行:1 个整数N(1<=N<=50)

第2行:N个整数,每个整数不超过INT_MAX

输出

第1行:生成的最大整数

样例输入 Copy

4
123 124 56 90

样例输出 Copy

9056124123

  

技术图片
#include <bits/stdc++.h>
using namespace std;
const int N= 100005;
#define ri register int 
int n;
char a[50][50],p[20],q[20],t[20];
int main(){
    scanf("%d",&n);
    for(ri i=0;i<n;i++)
    {
        scanf("%s",a[i]);
    }
    for(ri i=0;i<n;i++)
    for(ri j=i+1;j<n;j++)
    {
        int len1=strlen(a[i]),len2=strlen(a[j]);
        strcpy(q,a[i]);
        for(ri k=0;k<len2;k++)
        q[k+len1]=a[j][k];
        strcpy(p,a[j]);
        for(ri k=0;k<len1;k++)
        p[k+len2]=a[i][k];
        if(strcmp(q,p)<0)
        {
            strcpy(t,a[i]);
            strcpy(a[i],a[j]);
            strcpy(a[j],t);
        }
    }
    for(ri i=0;i<n;i++) printf("%s",a[i]);
}
View Code

 

字符串的比较

标签:its   data   %s   strncmp   const   code   pen   har   rcp   

原文地址:https://www.cnblogs.com/Lamboofhome/p/11748790.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!