pad_common(Extsym *c) #endif { register chainp cvl; register Namep v; long L = c->maxleng; int type; struct Dimblock *t; int szshort = typesize[TYSHORT]; for(cvl = c->allextp; cvl; cvl = cvl->nextp) if (commlen((chainp)cvl->datap) >= L) return; v = ALLOC(Nameblock); v->vtype = type = L % szshort ? TYCHAR : type_choice[L/szshort % 4]; v->vstg = STGCOMMON; v->vclass = CLVAR; v->tag = TNAME; v->vdim = t = ALLOC(Dimblock); t->ndim = 1; t->dims[0].dimsize = ICON(L / typesize[type]); v->fvarname = v->cvarname = "eqv_pad"; if (type == TYCHAR) v->vleng = ICON(1); c->allextp = mkchain((char *)mkchain((char *)v, CHNULL), c->allextp); }
int main() { char C[MAX_LEN], *A[MAX_LEN]; char ch; unsigned i, maxi, len, max_len = 0, n = 0; // input while ((ch = getchar()) != EOF) { A[n] = &C[n]; C[n++] = ch; } A[n] = &C[n]; C[n] = '\0'; // sort qsort(A, n, sizeof(char *), pstrcmp); // max len for (i = 0; i < n; i++) { len = commlen(A[i], A[i + 1]); if (len > max_len) { max_len = len; maxi = i; } } printf("%.*s\n", max_len, A[maxi]); return 0; }