Jump to content
Zatarra

Eliminare comentarii pentru soursa program in C/C++ (using sed)

Recommended Posts

Posted

Avem sursa source.c

/*Program simplu:
Fiecare baiat din lume are 3 mere
Fiecare fata din lume are 5 mere
Sa se creeze un program care afla numarul de mere dintr-o camera
cu un numar de baieti si de fete introdus de la tastatura*/

#include <stdio.h>

int NumarBaieti;
int NumarFete;
int NumarMere;

void main (void)
{
printf("\nIntrodu numarul de baieti din camera");
scanf("%d",&NumarBaieti); //Citim numarul de baieti
printf("\nIntrodu numarul de fete din camera");
scanf("%d",&NumarFete); //Citim numarul de fete
NumarMere=NumarBaieti*3+NumarFete*5;
//Calculam numarul de mere
printf("In camera sunt %d mere",NumarMere);
}

Pentru a elimina comentariile de genul:

/*Program simplu:
Fiecare baiat din lume are 3 mere
Fiecare fata din lume are 5 mere
Sa se creeze un program care afla numarul de mere dintr-o camera
cu un numar de baieti si de fete introdus de la tastatura*/

Folosim urmatoarea comanda:

cat source.c |sed '/\/\*/,/\*\//d' > newsource.c

Noua sursa newsource.c va arata astfel:

#include <stdio.h>

int NumarBaieti;
int NumarFete;
int NumarMere;

void main (void)
{
printf("\nIntrodu numarul de baieti din camera");
scanf("%d",&NumarBaieti); //Citim numarul de baieti
printf("\nIntrodu numarul de fete din camera");
scanf("%d",&NumarFete); //Citim numarul de fete
NumarMere=NumarBaieti*3+NumarFete*5;
//Calculam numarul de mere
printf("In camera sunt %d mere",NumarMere);
}

Pentru a elimina comentariile de genul:

scanf("%d",&NumarBaieti); //Citim numarul de baieti

sau

        //Calculam numarul de mere

Folosim urmatoarea comanda:

cat source.c |sed -e 's/\/\/.*$//g' > newsource.c

Noua sursa newsource.c va arata astfel:

/*Program simplu:
Fiecare baiat din lume are 3 mere
Fiecare fata din lume are 5 mere
Sa se creeze un program care afla numarul de mere dintr-o camera
cu un numar de baieti si de fete introdus de la tastatura*/

#include <stdio.h>

int NumarBaieti;
int NumarFete;
int NumarMere;

void main (void)
{
printf("\nIntrodu numarul de baieti din camera");
scanf("%d",&NumarBaieti);
printf("\nIntrodu numarul de fete din camera");
scanf("%d",&NumarFete);
NumarMere=NumarBaieti*3+NumarFete*5;

printf("In camera sunt %d mere",NumarMere);
}

Pentru a elimina liniile goale folosim una din urmatoarele comenzi:

cat source.c |sed '/^$/d' > newsource.c

cat source.c |sed '/./!d' > newsource.c

Noua sursa newsource.c va arata astfel:

/*Program simplu:
Fiecare baiat din lume are 3 mere
Fiecare fata din lume are 5 mere
Sa se creeze un program care afla numarul de mere dintr-o camera
cu un numar de baieti si de fete introdus de la tastatura*/
#include <stdio.h>
int NumarBaieti;
int NumarFete;
int NumarMere;
void main (void)
{
printf("\nIntrodu numarul de baieti din camera");
scanf("%d",&NumarBaieti); //Citim numarul de baieti
printf("\nIntrodu numarul de fete din camera");
scanf("%d",&NumarFete); //Citim numarul de fete
NumarMere=NumarBaieti*3+NumarFete*5;
//Calculam numarul de mere
printf("In camera sunt %d mere",NumarMere);
}

Pentru a elimina liniile care contin doar tab-uri sau spatii folosim urmoatoarele comenzi:

Pentru tab-uri: cat source.c |sed '/^\t\{1,\}$/d' > newsource.c

Pentru space-uri: cat source.c |sed '/^\s\{1,\}$/d' > newsource.c

Pentru a aplica toate cele prezentate folosim urmatoarea comanda:

cat source.c |sed '/\/\*/,/\*\//d' |sed -e 's/\/\/.*$//g' |sed '/^$/d' |sed '/^\s\{1,\}$/d' |sed '/^\t\{1,\}$/d' > newsource.c

Noua sursa newsource.c va arata astfel:

#include <stdio.h>
int NumarBaieti;
int NumarFete;
int NumarMere;
void main (void)
{
printf("\nIntrodu numarul de baieti din camera");
scanf("%d",&NumarBaieti);
printf("\nIntrodu numarul de fete din camera");
scanf("%d",&NumarFete);
NumarMere=NumarBaieti*3+NumarFete*5;
printf("In camera sunt %d mere",NumarMere);
}

Daca aveti ceva sugestii sau eventuale intrebari nu ezitati sa postati

P.S. Scuze pentru "soursa" - sunt obosit si nici nu pot modifica titlul

  • Upvote 1
Posted (edited)

La aia nu m`am gandit :))

Sincer nu prea ai avea motive sa folosesti // sau /* in printf-uri sau in alte chestii de genu, cu toate ca ai dreptate, daca o functie contine // sau /* va sterge pana la capat sau pana la */, depinde de caz

In tot anii mei de programare nu am folosit asa ceva, dar you never know ;-) cu toate ca repet e tare ilogic

Edited by Zatarra

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...