字符串的比较

Posted lamboofhome

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串的比较相关的知识,希望对你有一定的参考价值。

相关知识: 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

 

以上是关于字符串的比较的主要内容,如果未能解决你的问题,请参考以下文章

postman添加断言

将 16 字节字符串与 SSE 进行比较

轻松保存重复多用的代码片段

21个常用代码片段

常用Javascript代码片段集锦

片段(Java) | 机试题+算法思路+考点+代码解析 2023