Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- /*X CL | Conta o número de letras
- X CC | Conta o número de caracteres
- X CD | Conta o número de dígitos
- X CN | Conta o número de linhas
- X CT | Conta o número incidências de determinado caracter informado pelo usuário: Exemplo -b Para contar o número de letras “A”: analyse CT teste.txt “A”
- X CO | Codifica seu arquivo*. Deve ser informado o nome do arquivo de saída. Exemplo de chamada: analyse CO teste.txt novo.txt (Inverte bit 2 e 7 || 1 p/0 e 0 p/ 1)
- X DO | Decodifica seu arquivo. O arquivo de entrada (codificado) e o de saída devem ser informados. Exemplo de chamada: analyse DO novo.txt novo2.txt */
- /* SE USAR O CHAR X NO ARQUIVO E ELE DECODIFICAR, VAI DAR END OF FILE, POIS O VALOR NA TABELA ASCII DO CARACTERE CODIFICADO É 26, MESMO VALOR DE CTRL Z, QUE
- EQUIVALE A ENDOFILE*/
- int main(int argc, char *argv[]) {
- int ch;
- int i = 0;
- FILE *fp;
- FILE *fp2;
- FILE *fp3;
- FILE *fpbin;
- fp = fopen(argv[2], "r");
- if (argc == 3){
- if(strcmp(argv[1], "CL") == 0){
- while((ch = fgetc(fp)) != EOF){
- if(isalpha(ch)) {
- i++;
- }
- }
- printf("Numero de letras no arquivo: %d", i);
- }
- else if(strcmp(argv[1], "CC") == 0){
- while((ch = fgetc(fp)) != EOF){
- i++;
- }
- printf("Numero de caracteres no arquivo: %d", i);
- }
- else if(strcmp(argv[1], "CD") == 0){
- while((ch = fgetc(fp)) != EOF){
- if(isdigit(ch)) {
- i++;
- }
- }
- printf("Numero de digitos no arquivo: %d", i);
- }
- else if(strcmp(argv[1], "CN") == 0){
- while((ch = fgetc(fp)) != EOF){
- if(ch == '\n') {
- i++;
- }
- }
- printf("Numero de linhas no arquivo: %d", i+1);
- }
- else {
- printf("Parametro invalido");
- }
- }
- else if(argc == 4){
- if(strcmp(argv[1], "CT") == 0){
- char cha[40];
- while((ch = fgetc(fp)) != EOF){
- sprintf(cha, "%c", ch);
- if(strcmp(argv[3], cha) == 0)
- i++;
- }
- printf("Numero de caracteres %s no arquivo: %d",argv[3], i);
- }
- else if(strcmp(argv[1], "CO") == 0){
- fp2 = fopen(argv[3], "wb+");
- int convert = 66;
- int c;
- char novo;
- while((ch = fgetc(fp)) != EOF){
- c = ch ^ convert;
- fprintf(fp2, "%c", c);
- }
- fclose(fp2);
- }
- else if(strcmp(argv[1], "DO") == 0){
- fpbin = fopen(argv[2], "rb");
- fp3 = fopen(argv[3], "w+");
- int convert = 66;
- int c;
- while(1){
- if(feof(fpbin)) {
- break;
- }
- else {
- ch = fgetc(fpbin);
- c = ch ^convert;
- fputc(c, fp3);
- }
- }
- while((ch = fgetc(fpbin)) != EOF){
- fscanf(fpbin, "%c", &ch);
- printf("%c\n", ch);
- c = ch ^ convert;
- printf("%c", c);
- fputc(c, fp3);
- }
- fclose(fp3);
- fclose(fpbin);
- }
- else {
- printf("Parametro invalido");
- }
- }
- else {
- printf("Numero de parametros invalidos");
- }
- fclose(fp);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement