Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define MAX_N_STRING 100
- #define MAX_STRLEN 100
- #define STR_FOR_INPUT "%s:100"
- #define END_MARKER "END"
- #define MY_OWN_STRINGS_H 1
- #if MY_OWN_STRINGS_H
- int strcmp(const char *s1, const char *s2) {
- int i=0;
- while ((s1[i]!='\0') && (s2[i]!='\0') && (s1[i]==s2[i]) && (i<MAX_STRLEN)) {
- i++;
- }
- if ((s1[i]=='\0') && (s2[i]=='\0') && (i<=MAX_STRLEN)) {
- return 0;
- } else {
- return 1;
- }
- }
- size_t strlen(const char *s) {
- int i=0;
- while ((s[i]!='\0') && (i<(MAX_N_STRING*MAX_STRLEN))) i++;
- return i;
- }
- char *strcpy(char *dest, const char *src) {
- size_t i;
- for (i=0; (i<MAX_STRLEN) && (src[i]!='\0'); i++) {
- dest[i]=src[i];
- }
- dest[i]='\0';
- return dest;
- }
- char *strcat(char *dest, const char *src) {
- size_t i=0, j=strlen(src), k=strlen(dest);
- while (i<j) {
- dest[k+i]=src[i]; i++;
- }
- dest[k+i]='\0';
- return dest;
- }
- #else
- #include <string.h>
- #endif
- void main() {
- printf("Hello, World!\nUse single-bit encoding, please!\n");
- printf("Enter strings content. Maximum strings length is %d characters.\n",MAX_STRLEN);
- printf("Input will stopped after %d strings input or the \"%s\" phrase instead of string content.\n",MAX_N_STRING,END_MARKER);
- int i=0; char s[MAX_N_STRING][MAX_STRLEN];
- do {
- printf("s[%d]: ",i); scanf(STR_FOR_INPUT,s[i]);
- if (!strcmp(s[i],END_MARKER)) break;
- i++;
- } while (i<MAX_N_STRING);
- printf("Strings was entered: %d, go to data processing...\n",i);
- for (int j=0; j<i; j++) {
- for (int k=j+1; k<i; k++) {
- if (strlen(s[k])>strlen(s[j])) {
- char t[MAX_STRLEN];
- strcpy(t,s[k]);
- strcpy(s[k],s[j]);
- strcpy(s[j],t);
- }
- }
- }
- printf("Strings array after sorting:\n");
- for (int j=0; j<i; j++) {
- printf("s[%d] = %s\n",j,s[j]);
- }
- char u[MAX_N_STRING*MAX_STRLEN]="";
- for (int j=0; j<i; j++) {
- strcat(u,s[j]);
- }
- printf("The result: %s\n",u);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement