-
Notifications
You must be signed in to change notification settings - Fork 0
/
19.12.13_reemplazarCaracter_buscarCaracter.c
91 lines (70 loc) · 2.47 KB
/
19.12.13_reemplazarCaracter_buscarCaracter.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct modif { char textOriginal[1000]; char textNew[1000]; int cantidad; };
char *carga(int *);
struct modif *modifica(char *, int, char, char);
char *busca(char *, int);
int main(){
int n;
char *texto;
char *textoCortado;
char c, cr;
struct modif *original;
struct modif *resultado;
printf("Ingrese el texto\n\n");
texto = carga(&n);
printf("Texto ingresado: %s \n", texto);
printf("long del texto: %i\n\n", n);
strcpy(original->textOriginal, texto);
/*OPCION 1- MODIFICA*/
printf("ingrese el caracter a reemplazar\n");
scanf("%c\n\n", &c);
printf("ingrese el caracter de reemplazo\n");
scanf("%c\n\n", &cr);
resultado = modifica(texto, n, c, cr);
printf("el texto era %s, se transformo en %s y se hicieron %d reemplazos\n\n\n\n", resultado->textOriginal, resultado->textNew, resultado->cantidad );
/*-----------------------------------------------------------------------------------------------------------------------------------------------*/
/*OPCION 2- CUENTA (NO SE PROGRAMA*/
/*OPCION 3- BUSCA*/
textoCortado = busca(texto, n);
if (textoCortado != NULL){
printf("Habiendo cortado el texto, quedo: %s\n", textoCortado);
printf("Y la direccion donde se encuentra la primer ocurrencia del caracer en el texto es: %i", &textoCortado);
}
else
printf("Ese caracter no estaba en el texto");
/*----------------------------------------------------------------------------------------------------------------------------------------------*/
return 0;
}
char* carga(int* n){
static char texto[1000];
int i = 0;
while ((texto[i] = getchar()) != EOF && i<999)
i++;
texto[i] = '\0';
*n = i;
return(texto);
}
struct modif *modifica(char *t, int n, char charAReemplazar, char cReemplazo){ /*la struct tiene que tener el texto original y el reemplazado*/
int i, c = 0;
static struct modif reemplazos;
strcpy(reemplazos.textOriginal, t);
strcpy(reemplazos.textNew, t);
for (i = 0; i<n; i++){
if (reemplazos.textNew[i] == charAReemplazar){
reemplazos.textNew[i] = cReemplazo;
c++;
}
}
reemplazos.cantidad = c;
return (&reemplazos);
};
char *busca(char *t, int n){
char c;
static char *textoCortado;
printf("Ingrese un caracter a buscar\n");
scanf("%c", &c);
textoCortado = strchr(t, c);
return(textoCortado);
}