64,701
社区成员
发帖
与我相关
我的任务
分享
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
inline int strcmm(const char *src, const char *dst)
{
int ret = 0;
while (!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
++src, ++dst;
if (ret < 0)
return -1;
if (ret > 0)
return 1;
return ret;
}
int pstrcmp(char **p, char **q)
{ return strcmm(*p, *q); }
#define MAXN 5000000
char c[MAXN], *a[MAXN];
int main()
{ int ch, n = 0;
while ((ch = getchar()) != EOF) {
a[n] = &c[n];
c[n++] = ch;
}
c[n] = 0;
qsort(a, n, sizeof(char *), pstrcmp);
return 0;
}
#include <iostream>
#include <algorithm>
using namespace std;
inline int strcmm(const char *src, const char *dst)
{
int ret = 0;
while (!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
++src, ++dst;
if (ret < 0)
return -1;
if (ret > 0)
return 1;
return ret;
}
inline bool comp(const char *p, const char *q)
{
return strcmm(p, q) < 0;
}
#define MAXN 5000000
char c[MAXN], *a[MAXN];
int main()
{ int ch, n = 0;
while ((ch = getchar()) != EOF) {
a[n] = &c[n];
c[n++] = ch;
}
c[n] = '\0';
std::sort(a, a + n, comp);
return 0;
}