В текстовом документе записаны буквы и цифры - после цифр поставить "() " - C (СИ)

Узнай цену своей работы

Формулировка задачи:

в текстовом документе записаны буквы и цифры мне надо после цифр поставить "()"
void main(){
char a,s,v[300];
int d=0;
printf("vvedite adres faila\n");
 FILE *fr;
  fr=fopen("out.txt","w");
 FILE *fp;
  gets(v);
  fp=fopen(v,"r");
  if(fp!=NULL)
  printf("Fail otkrit");
  else {
  printf("Nenaiden fail");   return;}
  i=0;
   while(!feof(fp)){
 z=0;
  s=getc(fp);
 if(s==0x30){
   x[i]=0;i++;d=1;}
  if(s==0x31){
    x[i]=1;i++;d=1;}
   if(s==0x32){
     x[i]=2;i++;d=1;}
    if(s==0x33){
      x[i]=3;i++;d=1;}
     if(s==0x34){
       x[i]=4;i++;d=1;}
      if(s==0x35){
    x[i]=5;i++;d=1;}
       if(s==0x36){
     x[i]=6;i++;d=1;}
    if(s==0x37){
      x[i]=7;i++;d=1;}
     if(s==0x38){
       x[i]=8;i++;d=1;}
      if(s==0x39){
        x[i]=9;i++;d=1;}
       if(s==0x2e){
         h=i;}
         z=i;
 
  if ((s!='.'&& (!isdigit(s)) && isdigit(a)&& d==1)&&((h==0&&i<=4)||(h!=0&&i-h<=2))){
 
  rasp(i);i=0;
   fprintf(fr,"(");
     fprintf(fr,")%c",s);
  else{
   fprintf(fr,"%c",s);
   a=s; }

 }
   fclose(fp);
    fclose(fr);
     unlink(v);
      rename("out.txt",v);
}
с этим кодом после некоторых русских букв тоже ставятся скобки как исправить?

Решение задачи: «В текстовом документе записаны буквы и цифры - после цифр поставить "() "»

textual
Листинг программы
#include<stdio.h>
#include<conio.h>
 
int main(){
clrscr();
char s, fname[300];
 
    printf("Enter file adress:\n");
    FILE *fr;
    FILE *fw;
    gets(fname);
    fr=fopen(fname,"r");             //здесь просто адрес писать например C:/in.txt
    fw=fopen("C:\\out.txt","w");     //если писать доступ к файлу, а он в папке хранится, нужно ставить '//' для доступа в папку
                                         //если просто out.txt, то по умолчанию файл будет на рабочем столе
    if(fr!=NULL)
        printf("File is opened!");
    else{
        printf("Error: This file doesn't exist!");
        getch();
        return 0;
    }
    while(!feof(fr)){
        s = getc(fr);
        if (s >= 48 && s <= 57)          //47, 48, 49, ..., 57 ASCII коды цифр от 0 до 9
            fprintf(fw, "%c()", s);  //если попадает s под описание этого прмежутка, ставит скобки после цифры
        else
            fprintf(fw, "%c", s);
    }
    fclose(fr);
    fclose(fw);
    unlink(fname);     //удаление исходного файла, насколько я понял
    printf("\nProcess successfully finished! :)");
    getch();
    return 0;
}

Объяснение кода листинга программы

  1. В начале программы подключаются необходимые библиотеки.
  2. Затем пользователю предлагается ввести адрес файла для обработки.
  3. Далее открываются два файла для чтения из и записи в.
  4. Если файл для чтения открыть не удалось (файл не существует), выводится сообщение об ошибке и программа завершается.
  5. Если файл для чтения открыть удалось, программа переходит к чтению содержимого файла.
  6. В процессе чтения, если текущий символ является цифрой (в диапазоне от 0 до 9), он записывается в выходной файл вместе с парой скобок.
  7. Если текущий символ не является цифрой, он просто записывается в выходной файл.
  8. После завершения чтения, файлы закрываются.
  9. Исходный файл удаляется.
  10. Выводится сообщение о успешном завершении процесса.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы