//Дан текстовый файл f, состоящий из нескольких строк.
//Пользователь вводит символ, начиная с которого в каждой строке исходного файла строчные латинские буквы преобразуются в прописные.
//Строки, в которых проведены такие преобразования, записываются в новый файл g. В конце строки через пробел проставляется количество преобразований.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char to_upper(char c){
int dif = 'A' - 'a';
char sym = c + dif;
return sym;
}
char* process_string(char* s, char user_char, int* count){
int n = strlen(s);
int i = 0;
char *a;
a = (char*)malloc(1000*sizeof(char));
strcpy(a, s);
int flag = 0;
for(i = 0; i < n; i++){
if(flag == 0 && s[i] == user_char){
flag = 1;
}
if('a'<=s[i] && s[i]<='z' && flag == 1)
{
*(count)++;
a[i] = to_upper(s[i]);
}
}
return a;
}
void file_process(){
FILE *f;
FILE *g;
char *mass;
mass = (char*)malloc(1000*sizeof(char));
char user_sym;
int count=0;
f=fopen("file_b","r");
g=fopen("file_b_new", "w");
printf("Введите символ:\n");
scanf("%c", &user_sym);
while(fscanf(f, "%s", mass)==1)
{
mass = process_string(mass, user_sym, &count);
fprintf(g, "%s", mass);
fprintf(g, "%d", count);
}
fclose(g);
fclose(f);
}
int main(){
file_process();
//free(a);
return 0;
}