Лаба5 Программирование
.docxЗадание. Составить триады из символов текста, расположенных в нечетных позициях. Обрабатываются только отображаемые символы.
Псевдокод:
Блок-схема:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include "MY_STRING.h"
int main (void){
char logo[]=
"*********************************************************\r\n"
"* Nizhniy Novgorod Technical University *\r\n"
"* Study work number 5. Task number 3. *\r\n"
"* Performed student 17-IVT-3 Anisimova E.S. *\r\n"
"*********************************************************\r\n";
char*text=NULL;
char*newm=NULL;
char*copym=NULL;
int i, a, j,n,k=0;
FILE* pText=fopen("C:\\my.txt","r");
if (pText==NULL){
perror("Error\n");
return 1;
}
text=(char*)malloc(my_flen(pText)*sizeof(char));
newm=(char*)malloc(my_flen(pText)*sizeof(char));
copym=(char*)malloc(my_flen(pText)*sizeof(char));
fseek(pText,0,SEEK_SET);
my_fgets(pText,text);
printf("Tekst :**************************** \n");
for( i=0;i<my_len(text);i++){
if(i%57==0)printf("\n");
printf("%c",text[i]);
}
printf("***********************************\n");
printf("\n");
n=my_len(text);
for(i=j=0;text[i]!='\0';i++){
if(text[i]!=' ')
{newm[j++]=text[i];
}}
newm[j]='\0';
for( i=0;i<n;i++){
printf("%c", newm[i]);}
printf("\n");
printf("\n");
for(i=j=0;newm[i]!='\0';i++){
if(i%2==1){
copym[j++]=newm[i];}}
copym[j]='\0';
for( i=0;copym[i]!='\0';i++){
printf("%c", copym[i]);}
printf("\n");
for( i=0;copym[i]!='\0';i++){
if(i%3==0)printf("\n");
printf("%c",copym[i]);
}
return 0;
}
Функция:
#if !defined MY_STRING
#define MY_STRING
int my_fgets (FILE*file,char*Arr){
int i=0;
Arr[0]=fgetc(file);
while(*(Arr+i)!=EOF){
*(Arr+i+1)=fgetc(file);
i++;
}*(Arr+i-1)='\0';
return i-1;
}
int my_len(char*file){
int i=0;
while(file[i]!='\0'){
i++;
}
return i;
}
int my_flen(FILE*file){
int i=0;
while(fgetc(file)!=EOF){
i++;
}
return i;
}
#endif