|
16 | 16 |
|
17 | 17 | #define TAM 11
|
18 | 18 |
|
| 19 | +typedef int num; |
| 20 | + |
| 21 | +typedef struct { |
| 22 | + char strA[TAM]; |
| 23 | + char strB[TAM]; |
| 24 | + char strC[TAM]; |
| 25 | +} reg; |
| 26 | + |
19 | 27 | main(){
|
20 |
| - struct reg { |
21 |
| - char strA[TAM]; |
22 |
| - char strB[TAM]; |
23 |
| - char strC[TAM]; |
24 |
| - }; |
25 |
| - |
26 | 28 | FILE *fich;
|
27 | 29 |
|
28 |
| - |
29 |
| - struct reg regUser = {"", "", ""}; |
30 |
| - char userStr[TAM], cmpBuffer[TAM]; |
31 |
| - int strCount = 0, i = 0; |
| 30 | + reg regUser = {"", "", ""}; |
| 31 | + char userStr[TAM] = ""; |
| 32 | + num strCount = 0, i = 0; |
32 | 33 |
|
33 | 34 | setlocale(LC_ALL, "Spanish");
|
34 | 35 |
|
@@ -58,40 +59,17 @@ main(){
|
58 | 59 | printf("Cadena a buscar (máx. %d %s): ", TAM-1, TAM-1 != 1 ? "caracteres" : "caracter");
|
59 | 60 | gets(userStr);
|
60 | 61 |
|
61 |
| - strcpy(cmpBuffer, userStr); |
62 |
| - |
63 |
| - for(i=0; i<strlen(cmpBuffer); i++){ |
64 |
| - if(!isupper(cmpBuffer[i])) |
65 |
| - cmpBuffer[i]= toupper(cmpBuffer[i]); |
66 |
| - } |
67 |
| - |
| 62 | + strCount = 0; |
68 | 63 | fread(®User, sizeof(regUser), 1, fich);
|
69 |
| - while(!feof(fich)){ |
70 |
| - for(i=0; i<strlen(regUser.strA); i++){ |
71 |
| - if(!isupper(regUser.strA[i])) |
72 |
| - regUser.strA[i] = toupper(regUser.strA[i]); |
73 |
| - } |
74 |
| - |
75 |
| - strCount = !strcmp(regUser.strA, cmpBuffer) ? strCount+1 : strCount; |
76 |
| - |
77 |
| - for(i=0; i<strlen(regUser.strB); i++){ |
78 |
| - if(!isupper(regUser.strB[i])) |
79 |
| - regUser.strB[i] = toupper(regUser.strB[i]); |
80 |
| - } |
81 |
| - |
82 |
| - strCount = !strcmp(regUser.strB, cmpBuffer) ? strCount+1 : strCount; |
83 |
| - |
84 |
| - for(i=0; i<strlen(regUser.strC); i++){ |
85 |
| - if(!isupper(regUser.strC[i])) |
86 |
| - regUser.strC[i] = toupper(regUser.strC[i]); |
87 |
| - } |
88 |
| - |
89 |
| - strCount = !strcmp(regUser.strC, cmpBuffer) ? strCount+1 : strCount; |
| 64 | + while(!feof(fich)){ |
| 65 | + strCount = !stricmp(regUser.strA, userStr) ? strCount+1 : strCount; |
| 66 | + strCount = !stricmp(regUser.strB, userStr) ? strCount+1 : strCount; |
| 67 | + strCount = !stricmp(regUser.strC, userStr) ? strCount+1 : strCount; |
90 | 68 |
|
91 | 69 | fread(®User, sizeof(regUser), 1, fich);
|
92 | 70 | }
|
93 | 71 |
|
94 |
| - printf("La cadena %s ha sido encontrada %d %s.", userStr, strCount, strCount != 1 ? "veces" : "vez"); |
| 72 | + printf("La cadena \"%s\" ha sido encontrada %d %s.", userStr, strCount, strCount != 1 ? "veces" : "vez"); |
95 | 73 |
|
96 | 74 | fclose(fich);
|
97 | 75 |
|
|
0 commit comments