Вот что получилось:
| Код | #include <stdio.h> #include <conio.h> #include <malloc.h> #include <string.h>
char *strings_cat(char **s, int n){ char *res_string; int res_len = 0, i, j, k = 0; for(i=0;i<n;i++) res_len += strlen(s[i]); res_string = (char*)malloc((res_len + 1)*sizeof(char)); for(i=0;i<n;i++){ if(i) k+=strlen(s[i-1]); for(j=0;j<strlen(s[i]);j++){ res_string[k + j] = s[i][j]; } } res_string[res_len] = '\0'; return res_string; }
int main(){ int n, i; printf("kolichestvo skladivaemih strok = "); scanf("%d",&n); char buff[100];//объединяемые строки могут иметь длину не более 99 char **s = (char**)calloc(n,sizeof(char*)); for(i=0;i<n;i++){ printf("\nVvedite %d - yu stroku - ",i+1); scanf("%s",buff); s[i] = (char*)malloc(strlen(buff)*sizeof(char)); strcpy(s[i],buff); } char *res_string = strings_cat(s,n); printf("\n%s",res_string); free(res_string); for(i=0;i<n;i++) free(s[i]); free(s); getch(); return 0; }
|
|