Untitled
unknown
c_cpp
8 months ago
1.8 kB
8
Indexable
#include <stdio.h>
int connect(const char* t1, const char* t2, const char* t3, char* t4, int size);
void trim(char *str);
int main() {
char t1[1001] = {0};
char t2[1001] = {0};
char t3[1001] = {0};
char output[3004];
printf("Podaj tekst:\n");
scanf("%1000[^\n]", t1);
while (getchar() != '\n');
printf("Podaj tekst:\n");
scanf("%1000[^\n]", t2);
while (getchar() != '\n');
printf("Podaj tekst:\n");
scanf("%1000[^\n]", t3);
while (getchar() != '\n');
if (connect(t1, t2, t3, output, sizeof(output)) == 0) {
trim(output);
printf("%s\n", output);
}
return 0;
}
int connect(const char* t1, const char* t2, const char* t3, char* t4, int size) {
int len1 = 0, len2 = 0, len3 = 0;
const char *p = t1;
while (*p) { len1++; p++; }
p = t2;
while (*p) { len2++; p++; }
p = t3;
while (*p) { len3++; p++; }
int required = len1 + len2 + len3 + 2 + 1;
if (required > size) return 1;
while (*t1) *t4++ = *t1++;
*t4++ = ' ';
while (*t2) *t4++ = *t2++;
*t4++ = ' ';
while (*t3) *t4++ = *t3++;
*t4 = '\0';
return 0;
}
void trim(char *str) {
if (*str == '\0') return;
char *end = str;
while (*end) end++;
end--;
while (end >= str && (*end == ' ' || *end == '\t' || *end == '\n' || *end == '\r' || *end == '\v' || *end == '\f'))
end--;
*(end + 1) = '\0';
char *start = str;
while (*start == ' ' || *start == '\t' || *start == '\n' || *start == '\r' || *start == '\v' || *start == '\f')
start++;
if (start != str) {
char *dst = str;
while (*start)
*dst++ = *start++;
*dst = '\0';
}
}Editor is loading...
Leave a Comment