Documente Academic
Documente Profesional
Documente Cultură
Shadow
Formatted: Font: 16 pt, Bold, Font color: Text 1, Text
PROGRAMACION EN ANSI C Outline, Shadow
Formatted: Centered
Formatted: Left: 0.79", Right: 0.88", Top: (Dotted,
Auto, 0.5 pt Line width), Bottom: (Dotted, Auto, 0.5 pt
Line width), Left: (Dotted, Auto, 0.5 pt Line width),
Right: (Dotted, Auto, 0.5 pt Line width)
Formatted: Centered
Formatted: Font: 16 pt
Demostrar la aplicación de estas librerías con operaciones que se utiliza con frecuencia.
Concepto
Las funciones estándar o predefinidas se denominan funciones pertenecientes a la biblioteca
estándar que se dividen en grupos; todas las funciones que pertenecen al mismo grupo se
declaran en el mismo archivo de cabecera
En las versiones de c se ofrece una biblioteca estándar de funciones en tiempo de ejecución que
dan soporte eficaz más accesible a operaciones utilizadas con frecuencia sin necesidad de volver
a escribir código para cumplir las mismas funciones de estas librerías.
FUNCIONES NUMERICAS <math.h>
Virtualmente cualquier operación aritmética es posible en unn programa C. Las funciones
disponibles son las siguientes
1. Matemáticas
2. Trigonométricas
3. Logarítmicas
4. Exponenciales
La mayoría de funciones numéricas están en el archivo de cabecera Manth.h
Funciones matemáticas
ceil(x) Redondea al entero másentero más cercano.
fabs(x) Devuelve el valor absoluto de x.
floor(x) Redondea por defecto al entero más próximo.
fmod(x,y) Calcula el resto en coma flotante para la división x/y de modo que x=i*y +f, donde
i es un entero , f tiene el mismo signo que x y el valor absoluto de f es menor que el valor
absoluto de y
pow(x,y) Calcula x elevado a la potencia y Si x es menor que o igual a cero, y debe ser un
entero, Si x es igual a cero, y no puede ser negativo .
pow10(x) Calcula 10 elevado a la potencia x(IO); x debe ser de tipo entero.
sqrt(x) Devuelve la raíz cuadrada de x; x debe ser mayor o igual a cero.
Funciones trigonométricas
acos(x) Calcula el arco coseno del argumento x. El argumento x debe estar entre -1 y 1.
asin(x) Calcula el arco seno del argumento x. El argumento x debe estar entre -1 y 1.
atan(x) Calcula el arco tangente del argumento x.
atan2 (x,y) Calcula el arco tangente de x dividido por y.
cos(x) Calcula el coseno delcoseno del anguloángulo x; x se expresa en radianes.
sin(x) Calcula el seno del anguloángulo x; x se expresa en radianes.
tan(x) Devuelve la tangente del anguloángulo x; x se expresa en radianes.
1. //funciones de string.h
2. #include<stdio.h>
3. #include<string.h>//libreria a utilizar
4. #include<stdlib.h>
5. /**/
6.
7. struct {
8. char name[40];
9. int age;
10. } person, person_copy;
11. int vrpeticion(void){
12. int auxsld;
13. do{
14.
15. printf("\n1.Repetir programa");
16. printf("\n2.Salir del programa\n");
17. scanf("%d",&auxsld);
18. if(auxsld!=1&&auxsld!=2){
19. printf("\nOpcion incorrecta!");
20. printf("\a");
21. system("cls");
22. }
23. }while(auxsld!=1&&auxsld!=2);
24. system("cls");// system("clear"); linux - Formatted: English (United States)
- system("cls"); windows
25. return auxsld; Field Code Changed
26. } Formatted: English (United States)
27. int main(void){ // variables creadas en ordena impresion de lista
28. int opc,auxsld,operadorsalida; Formatted: English (United States)
29.
30. char * pch;
31. char str2[] = "Ejemplo string";
32.
33. char buffer1[] = "DWgaOtP12df0";
34. char buffer2[] = "DWGAOTP12DF0";
35. int n;
36.
37. char myname[] = "Quito capital de Ecuador";
38.
39. char str[] = "manzana can be very useful......";
40.
41. char str1[] = "almenos Cada programador debe saberme!";
42.
43. char str4[80];
44.
45. char str5[] = "Este es un ejemplo de string";
46. char * pch234;
47.
48. char key[] = "gta5";
49. char buffer[80];
50.
51. char key2[] = "pera";
52. char buffer23[80];
53.
54. char str13[]="ejemplo string";
55. char str23[40];
56. char str33[40];
57.
58. char str210[] = "fcba73";
59. char keys2[] = "1234567890";
60. int i245;
61.
62. FILE * pFile;
63.
64. char szInput[256];
65.
66. char str134[20];
67. char str234[20];
68.
69. char str45[][5] = { "R2D2" , "C3PO" , "R2A6" };
70. int n45;
71.
72. char str114[]= "ser o no ser perro";
73. char str214[40];
74. char str314[40];
75.
76. char str56[] = "Este es un ejemplo de string";
77. char key56[] = "aeiou";
78. char * pch56;
79.
80. char str78[] = "Este es un ejemplo de string";
81. char * pch78;
82.
83. int i89;
84. char strtext[] = "129th";
85. char cset89[] = "1234567890"; Formatted: English (United States)
86.
87. char str00[] ="La ESCUELA POLITECNICA NACIONAL es la mejor de Field Code Changed
Quito"; Formatted: English (United States)
88. char * pch00;
89. Formatted: English (United States)
90. char str01[] ="- Aprediendo programacion hackeare la NASA";
Formatted: English (United States)
91. char * pch01;
92. Field Code Changed
93. char s2011[] = "abcdefg";
Formatted: English (United States)
94. char s1011[7];
95. int i011; Formatted: English (United States)
96.
Field Code Changed
97.
98. system("color F0"); Formatted: English (United States)
99. do{
100. printf("\t\t\t\t\t\t<string.h>\n"); Formatted: English (United States)
101. Field Code Changed
102. printf("\t\t\t1.Funcion memchr\n");
103. printf("\t\t\t2.Funcion memcmp\n"); Formatted: English (United States)
104. printf("\t\t\t3.Funcion memcpy\n"); Formatted: English (United States)
105. printf("\t\t\t4.Funcion memmove\n");
106. printf("\t\t\t5.Funcion memset\n"); Formatted: English (United States)
107. printf("\t\t\t6.Funcion strcat\n"); Formatted: English (United States)
108. printf("\t\t\t7.Funcion strchr\n");
Field Code Changed
Formatted ...
Field Code Changed ...
Formatted ...
Field Code Changed ...
109. printf("\t\t\t8.Funcion strcmp\n");
Field Code Changed ...
110. printf("\t\t\t9.Funcion strcoll\n");
111. printf("\t\t\t10.Funcion strcpy\n"); Formatted ...
112. printf("\t\t\t11.Funcion strcspn\n");
Formatted ...
113. printf("\t\t\t12.Funcion strerror\n");
114. printf("\t\t\t13.Funcion strlen\n"); Field Code Changed ...
115. printf("\t\t\t14.Funcion strncat\n");
116. printf("\t\t\t15.Funcion strncmp\n"); Field Code Changed ...
117. printf("\t\t\t16.Funcion strncpy\n"); Formatted ...
118. printf("\t\t\t17.Funcion strpbrk\n");
119. printf("\t\t\t18.Funcion strrchr\n"); Field Code Changed ...
120. printf("\t\t\t19.Funcion strspn\n"); Formatted ...
121. printf("\t\t\t20.Funcion strstr\n");
122. printf("\t\t\t21.Funcion strtok\n"); Field Code Changed ...
123. printf("\t\t\t22.Funcion strxfrm\n"); Formatted ...
124. printf("ELIJA UNA OPCION: ");
125. scanf("%d",&opc); Formatted ...
126. if(opc==1){ Field Code Changed ...
127. printf("Ejemplo string\n");
128. pch = (char*) memchr (str2, 'p', strlen(str2)); Field Code Changed ...
129. if (pch!=NULL) Formatted
130. printf ("'p' se encontro position %d.\n", pch-str2+1); ...
131. else Field Code Changed ...
132. printf ("'p' no se encontro.\n");
Formatted ...
133.
134. auxsld=vrpeticion(); Field Code Changed ...
135. }
Formatted ...
136. else if(opc==2){
137. n=memcmp ( buffer1, buffer2, sizeof(buffer1) ); Field Code Changed ...
138. printf(" DWgaOtP12df0 comparacion peso bytes DWGAOTP12DF0\n");
139. if (n>0) printf ("'%s' es mayor que '%s'.\n",buffer1,buffer2); Formatted ...
140. else if (n<0) printf ("'%s' es menos que Field Code Changed ...
'%s'.\n",buffer1,buffer2);
141. else printf ("'%s' es lo mismo que '%s'.\n",buffer1,buffer2); Formatted ...
142. Field Code Changed ...
143. auxsld=vrpeticion();
144. } Formatted ...
145. else if(opc==3){ Field Code Changed ...
146. /* using memcpy to copy string: */
147. memcpy ( person.name, myname, strlen(myname)+1 ); Formatted ...
148. person.age = 24; Formatted ...
149.
150. /* using memcpy to copy structure: */ Field Code Changed ...
151. memcpy ( &person_copy, &person, sizeof(person) ); Formatted
152. ...
153. printf ("person_copia: %s, Field Code Changed ...
%d \n", person_copy.name, person_copy.age );
Formatted ...
154.
155. auxsld=vrpeticion(); Formatted ...
156. }
Field Code Changed ...
157. else if(opc==4){
158. printf("manzana can be very useful......\n"); Formatted ...
159. memmove (str+20,str+15,11);
160. puts (str); Formatted ...
161. Field Code Changed ...
162. auxsld=vrpeticion();
163. } Formatted ...
164. else if(opc==5){ Field Code Changed ...
165.
166. printf("almenos Cada programador debe saberme!\n"); Formatted ...
167. memset (str1,'-',7); Field Code Changed ...
Formatted ...
Field Code Changed ...
Formatted ...
Field Code Changed ...
Formatted ...
Formatted ...
Field Code Changed ...
Formatted ...
168. puts (str1);
169. auxsld=vrpeticion();
170. }
171. else if(opc==6){
172.
173. strcpy (str4,"las ");
174. strcat (str4,"mejores ");
175. strcat (str4,"son ");
176. strcat (str4,"las ");
177. strcat (str4,"poliburgues.");
178. printf("\nUnion de cadenas\n\n");
179. printf("las\nmejores\nson\nlas\npoliburgues\n\n");
180. puts (str4);
181. auxsld=vrpeticion();
182. }
183. else if(opc==7){
184.
185. printf (" \"%s\"...\n",str5);
186. pch234=strchr(str5,'s');
187. printf("\nBuscando el caracter 's'\n");
188. while (pch234!=NULL)
189. {
190. printf ("encontrado en puesto %d\n",pch234-str5+1);
191. pch234=strchr(pch234+1,'s');
192. }
193. auxsld=vrpeticion();
194. }
195. else if(opc==8){
196. do {
197. printf ("Cual es mi juego favorito?(rpt: gta5) ");
198. fflush (stdout);
199. scanf ("%79s",buffer);
200. } while (strcmp (key,buffer) != 0);
201. puts ("Respuesta correcta!");
202.
203. auxsld=vrpeticion();
204. }
205. else if(opc==9){
206. do {
207. printf ("Cual es mi fruta favorita?(rpt: pera) ");
208. fflush (stdout);
209. scanf ("%79s",buffer23);
210. } while (strcoll(key2,buffer23) != 0);
211. puts ("Respuesta correcta!");
212.
213. auxsld=vrpeticion();
214. }
215. else if(opc==10){
216.
217. strcpy (str23,str13);
218. strcpy (str33,"copia exitosa");
219. printf ("str1: %s\nstr2: %s\nstr3: %s\n",str13,str23,str33); Formatted: English (United States)
220. auxsld=vrpeticion();
221. } Field Code Changed
222. else if(opc==11){ Formatted: English (United States)
223. printf("fcba73\n");
224. i245 = strcspn (str210,keys2); Formatted: English (United States)
225. printf ("El primer numero en str2 esta en la posicion
%d.\n",i245+1);
226.
227. auxsld=vrpeticion();
228. }
229. else if(opc==12){
230. pFile = fopen ("libro_quimica","r");
231. if (pFile == NULL)
232. printf ("Error al abrir el archivo libro_quimica.txt:
%s\n",strerror(errno));
233.
234. auxsld=vrpeticion();
235. }
236. else if(opc==13){
237. printf("Introduce la frase: ");
238. while(getchar()!='\n');
239. gets(szInput);
240. printf("La oraci�n ingresada tiene %u caracteres de
largo.\n",(unsigned)strlen(szInput));
241.
242. auxsld=vrpeticion();
243. }
244. else if(opc==14){
245.
246. strcpy (str134,"hola planeta");
247. strcpy (str234,"mundo tierra");
248. strncat (str134, str234, 6);
249. printf("hola planeta\n mundo tierra\n");
250. puts (str134);
251. auxsld=vrpeticion();
252. }
253. else if(opc==15){
254.
255. puts ("buscar codigos IR cifrados...");
256. for (n45=0 ; n45<3 ; n45++)
257. if (strncmp (str45[n45],"R2xx",2) == 0) Formatted: English (United States)
258. {
259. printf ("Encontrado %s\n",str45[n45]); Formatted: English (United States)
260. } Field Code Changed
261. auxsld=vrpeticion();
262. } Formatted: English (United States)
263. else if(opc==16){
Formatted: English (United States)
264.
265. /* copy to sized buffer (overflow safe): */ Field Code Changed
266. strncpy ( str214, str114, sizeof(str214) );
Formatted: English (United States)
267.
268. /* partial copy (only 5 chars): */ Formatted: English (United States)
269. strncpy ( str314, str214, 5 );
270. str314[5] = '\0'; /* null character manually added */ Field Code Changed
271. Formatted: English (United States)
272. puts (str114);
273. puts (str214); Formatted: English (United States)
274. puts (str314);
275. auxsld=vrpeticion();
276. }
277. else if(opc==17){
278.
279. printf ("Vocales en '%s': ",str56);
280. pch56 = strpbrk (str56, key56);
281. while (pch56 != NULL)
282. {
283. printf ("%c " , *pch56);
284. pch56 = strpbrk (pch56+1,key56);
285. }
286. printf ("\n");
287. auxsld=vrpeticion();
288. }
289. else if(opc==18){
290. pch78=strrchr(str78,'s');
291. printf("Este es un ejemplo de string\n");
292. printf ("Ultima aparicion de 's' encontrado a los %d \n",pch78-
str78+1);
293.
294. auxsld=vrpeticion();
295. }
296. else if(opc==19){
297.
298. i89 = strspn (strtext,cset89);
299. printf("\n129th\n");
300. printf ("El numero inicial tiene %d digitos.\n",i89);
301. auxsld=vrpeticion();
302. }
303. else if(opc==20){
304.
305. pch00 = strstr (str00,"de Quito");
306. printf("Oracion anterior--> La ESCUELA POLITECNICA NACIONAL
es la mejor de Quito\n");
307. strncpy (pch00,"del Ecuador",11);
308. puts (str00);
309.
310. auxsld=vrpeticion();
311. }
312. else if(opc==21){
313.
314. printf ("Divion en sus partes de la frase \"%s\" en
tokens:\n",str01);
315. pch01 = strtok (str01," ,.-");
316. while (pch01 != NULL)
317. {
318. printf ("%s\n",pch01);
319. pch01 = strtok (NULL, " ,.-");
320. }
321. auxsld=vrpeticion();
322. }
323. else if(opc==22){
324.
325. i011 = strxfrm( s1011, s2011, 4 );
326. printf( "s2=%s\n", s2011 ); Formatted: English (United States)
327. printf( "s1=%s\tlonguitud=%d\n", s1011, i011 );
328. auxsld=vrpeticion(); Formatted: English (United States)
329. } Field Code Changed
330.
331. Formatted: English (United States)
332.
Field Code Changed
333.
334. Formatted: English (United States)
335. else if(opc<1||opc>22){
Formatted: English (United States)
336. system("cls");
337. printf("\nOpcion incorrecta!\n\n");
338. printf("\a");
339. auxsld=1;
340.
341. }
342. }while(auxsld==1);
343. printf("\a");
344. return 0;}
345.
Conclusiones
Las librerías mencionadas nos facilitan la escritura de código.
Las funciones de cada librería son específicas y tienen restricciones para ciertos casos.
Las funciones pueden recibir varios o solo un argumento a la vez.
Bibliografía
Luis Joyanes Aguilar, Programación C ,2018/02/12, Paginas 234-242.
Cplusplus,2000-2017, 2018/02/12, http://www.cplusplus.com/reference/cstring/