cadenas y apuntadores n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Cadenas y apuntadores PowerPoint Presentation
Download Presentation
Cadenas y apuntadores

Loading in 2 Seconds...

play fullscreen
1 / 56

Cadenas y apuntadores - PowerPoint PPT Presentation


  • 118 Views
  • Uploaded on

Cadenas y apuntadores. Programación. Variables de tipo char. Las variables de tipo char ocupan un byte. Los valores posibles son de -128 a 127. Las constantes de tipo char pueden especificarse utilizando un carácter o una secuencia de escape encerrada entre apóstrofos. ‘ a’, ‘5’, ‘\n’

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Cadenas y apuntadores' - madge


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
variables de tipo char
Variables de tipo char

Las variables de tipo char ocupan un byte.

Los valores posibles son de -128 a 127.

Las constantes de tipo char pueden especificarse utilizando un carácter o una secuencia de escape encerrada entre apóstrofos.

‘a’, ‘5’, ‘\n’

Pueden mezclarse con variables enteras.

char x, y;

int a,b;

x = 45; y = ‘a’; a = 2*x; b = 3*x – y;

lectura de caracteres
Lectura de caracteres

scanf (stdio.h) utilizando el formato %c. requiere presionar ENTER

getch (conio.h) no requiere de ENTER.

getchar (stdio.h) requiere presionar ENTER

#include <stdio.h>

#include <conio.h>

main(){

char p1,p2,p3=65;

printf("\ningrese un caracter: ");

p1 = getchar();

putchar(p1);

printf("\n");

printf("\nel caracteer p3 es:");

putchar(p3);

printf("\n");

printf("\ningrese otro caracter: ");

scanf("%c",&p2);

printf("%c",p2);

printf("\ningrese otro caracter: ");

p2 = getch();

printf("caracter leido: %c",p2);

getch();

}

uso de fflush
Uso de fflush

Se requiere borrar el buffer para leer correctamente

#include <stdio.h>

#include <conio.h>

main(){

char p1,p2,p3=65;

printf("\ningrese un caracter: ");

p1 = getchar();

putchar(p1);

printf("\n");

fflush(stdin);

printf("\nel caracteer p3 es:");

putchar(p3);

printf("\n");

printf("\ningrese otro caracter: ");

scanf("%c",&p2);

printf("%c",p2);

printf("\ningrese otro caracter: ");

fflush(stdin);

p2 = getch();

fflush(stdin);

printf("caracter leido: %c",p2);

getch();

}

ejemplo
ejemplo

#include <stdio.h>

#include <conio.h>

#include <ctype.h>

main(){

char c1,c2,c3,c4;

printf("tecle un caracter: ");

c1 = getch();

fflush(stdin);

if(isdigit(c1))

printf("%c es un digito\n",c1);

else

printf("%c NO es un digito\n",c1);

printf("tecle un caracter: ");

c2 = getch();

fflush(stdin);

if(isalpha(c2))

printf("%c es una letra\n",c2);

else

printf("%c NO es una letra\n",c2);

printf("tecle un caracter: ");

c3 = getch();

fflush(stdin);

if(isupper(c3)){

printf("%c es una letra mayuscula\n",c3);

printf("La minuscula de %c es %c\n\n",c3,tolower(c3));

}

if(islower(c3)){

printf("%c es una letra minuscula\n",c2);

printf("La mayuscula de %c es %c\n\n",c3,toupper(c3));

}

getch();

}

ejemplo de conversi n
Ejemplo de Conversión

#include <stdio.h>

#include <conio.h>

#include <ctype.h>

char aMayuscula(char c){

if(isalpha(c))

return toupper(c);

switch(c){

case 'á':return 'Á';

case 'é':return 'É';

case 'í':return 'Í';

case 'ó':return 'Ó';

case 'ú':return 'Ú';

case 'ñ':return 'Ñ';

}

}

main(){

printf("%c\n",aMayuscula(‘á'));

getch();

}

funci n issymbol
Función issymbol

#include <stdio.h>

#include <conio.h>

char issymbol(char c){

if(c<=47||c>=58&&c<=64||c>=91&&c<=96||c>=123)

return 1;

return 0;

}

main(){

printf("%d \n",issymbol('2'));

printf("%d \n",issymbol('a'));

printf("%d \n",issymbol('A'));

printf("%d \n",issymbol('('));

printf("%d \n",issymbol('?'));

printf("%d \n",issymbol('['));

printf("%d \n",issymbol('{'));

getch();

}

tarea
tarea

Escriba una función que regrese 1 si el parámetro de tipo char es letra o número.

slide10
Quiz

Que valores se imprimen en la pantalla con las siguientes sentencias:

El código ASCII de ‘A’ es 65.

char a = ‘E’;

printf(“%c es una letra, su codigo ASCII es %d\n”, a, a);

printf(“%c %d”, tolower(a), isdigit(a));

cadenas
Cadenas

Una cadena de caracteres es un arreglo unidimensional de caracteres que termina con el carácter \0.

El nombre de la variable de cadena se utiliza como un apuntador al inicio del arreglo de caracteres.

Las constantes de tipo cadena se encierran entre comillas dobles.

Ejemplos:

char a[10] = “hola”;

char m[25] = “”;

char *x = “San Luis Potosí”;

declaraci n e inicializaci n
Declaración e inicialización

#include <stdio.h>

#include <conio.h>

main(){

// declara una cadena de longitud 20 como máximo.

char a[20];

// declara una cadena de longitud 20 como máximo.

// el contenido es la cadena “hola”, x[4] = ‘\0’.

char x[10] = "hola";

// declara una cadena de 4 caracteres mas \0

char *m = "que tal";

// declara una cadena con longitud variable

char s[] = {'B','i','e','n','v','e','n','i','d','o','\0'};

// declara una cadena con longitud variable

char nom[] = "juan perez";

puts(x);

puts(m);

puts(s);

puts(nom);

printf("x es \"%s\", ",x);

printf("m es \"%s\", ",m);

printf("s es \"%s\", ",s);

printf("nom es \"%s\" ",nom);

getch();

}

lectura de cadenas
Lectura de cadenas

#include <stdio.h>

#include <conio.h>

main(){

//cadena de longitud variable

char cad2[10]="hola";

char *cad0;

char *cad1;

cad0 = "Marruecos";

puts(cad0);

cad0 = "San Luis Potosi";

puts(cad0);

//lectura de cadena variable

gets(cad1);

puts(cad1);

//lectura de cadena de longitud fija

printf("%s\n",cad2);

gets(cad2);

puts(cad2);

scanf("%s",cad2);

puts(cad2);

getch();

}

ejemplo1
Ejemplo

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

main(){

char s1[20],*s2;

int i;

long l;

double d;

printf("introduce cadena:");

gets(s1);

i = atoi(s1);

l = atol(s1);

d = atof(s1);

printf("s1 = \"%s\"\n",s1);

printf("i = %d\n",i);

printf("l = %d\n",l);

printf("d = %lf\n",d);

l = strtol(s1,&s2,0);

printf("%d, s2= %s\n",l,s2);

d = strtod(s1,&s2);

printf("%lf, s2= %s\n",d,s2);

getch();

}

slide16
Quiz

¿Qué función realiza la conversión especificada?

1. atol ___ convierte carácter a mayúscula

2. atod ___ convierte cadena a entero

3. atoi ___ convierte carácter a minúscula

4. tolower ___ convierte cadena a entero largo

5. toupper ___ convierte cadena a double

contar caracteres
Contar caracteres

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

int cuenta(char s[],char c){

int i=0,cuenta=0;

while(s[i]){

if(s[i]==c)

cuenta++;

i++;

}

return cuenta;

}

main(){

char s[50],c;

printf("Cuenta el numero de veces que aparece\nun caracter en una cadena\n");

printf("introduce cadena:");

gets(s);

printf("introduce el caracter a contar:");

c = getchar();

printf("el caracter '%c' aparece %d veces\n“ , c, cuenta(s,c));

getch();

}

cuenta las vocales de una cadena
Cuenta las vocales de una cadena

int cuentaVocales(char s[]){

int i=0,cuenta=0;

while(s[i]){

if(tolower(s[i])=='a'||

tolower(s[i])=='e'||

tolower(s[i])=='i'||

tolower(s[i])=='o'||

tolower(s[i])=='u'

)

cuenta++;

i++;

}

return cuenta;

}

otra soluci n para contar vocales
Otra solución para contar vocales

main(){

int cuentaVocales;

char s[50];

printf("Escriba cadena:");

gets(s);

cuentaVocales=cuenta(s,'a')+cuenta(s,'e')+

cuenta(s,'i')+cuenta(s,'o')+cuenta(s,'u');

printf("Total de vocales %d",cuentaVocales);

getch();

}

convierte a may sculas una cadena
Convierte a mayúsculas una cadena

void aMayusculas(char s[]){

int i=0;

while(s[i]){

s[i] = toupper(s[i]);

i++;

}

}

main(){

char s[50];

printf("Cuenta el número de vocales en una cadena\n");

printf("introduce cadena:");

gets(s);

aMayusculas(s);

printf("la cadena en mayusculas es:\n%s",s);

getch();

}

reemplazar un car cter por otro
Reemplazar un carácter por otro

void reemplaza(char s[],char c1, char c2){

int i=0;

while(s[i]){

if(s[i]==c1) s[i] = c2;

i++;

}

}

main(){

char s[50],c1,c2;

printf("reemplaza un caracter por otro en una cadena\n");

printf("introduce cadena:");

gets(s);

printf("introduce el caracter a reemplazar:");

c1 = getchar();

fflush(stdin);

printf("introduce el caracter de reemplazo:");

c2 = getchar();

reemplaza(s,c1,c2);

printf("la cadena reeplazada es:\n%s",s);

getch();

}

suma de d gitos de un n mero
Suma de dígitos de un número

#include <stdio.h>

#include <ctype.h>

#include <conio.h>

int sumaDigitos(char s[]){

int i=0,suma=0;

while(s[i]){

if(isdigit(s[i]))

suma += s[i]-'0';

i++;

}

return suma;

}

main(){

int suma;

char s[50];

printf("Escriba cadena:");

gets(s);

suma = sumaDigitos(s);

printf("Suma de digitos = %d",suma);

getch();

}

extraer fecha del curp
Extraer fecha del CURP

El CURP está formado por una cadena de 18 caracteres, la fecha la forman los caracteres del 5 al 10.

La siguiente función extrae el día, el mes y el año de nacimiento.

#include <stdio.h>

#include <ctype.h>

#include <conio.h>

void fechaCURP(char s[],int *d,int *m,int *a){

*a = 1900+(s[4]-'0')*10+(s[5]-'0');

*m = (s[6]-'0')*10+(s[7]-'0');

*d = (s[8]-'0')*10+(s[9]-'0');

}

actividad
Actividad

Escriba una función que cambie todos los dígitos iguales a ‘0’ por la letra ‘o’ y los unos ‘1’ por letras ‘I’ de una cadena que pase como parámetro.

void reemplaza(char s[],char c1, char c2){

int i=0;

while(s[i]){

if(s[i]==c1) s[i] = c2;

i++;

}

}

funciones de cadenas
Funciones de cadenas

Biblioteca string.h

ejemplo strcpy
Ejemplo strcpy

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

{

char s2[8] = "abcdefg";

char s1[8];

strcpy( s1, s2 );

printf( "s2=%s\n", s2 );

printf( "s1=%s\n", s1 );

getch();

return 0;

}

ejemplo strncpy
Ejemplo strncpy

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

{

char s2[8] = "abcdefg";

char s1[8];

strncpy( s1, s2, 3);

printf( "s2=%s\n", s2 );

printf( "s1=%s\n", s1 );

getch();

return 0;

}

ejemplo strcat
Ejemplo strcat

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

{

char s1[11] = "Hola ";

char s2[8] = "amigos";

printf( "s1=%s\t", s1 );

printf( "s2=%s\n", s2 );

strcat( s1, s2 );

printf( "s1=%s\n", s1 );

getch();

return 0;

}

ejemplo strncat
Ejemplo strncat

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

{

char s1[11] = "Hola ";

char s2[8] = "amigos";

printf( "s1=%s\t", s1 );

printf( "s2=%s\n", s2 );

strncat( s1, s2, 4);

printf( "s1=%s\n", s1 );

getch();

return 0;

}

ejemplo strstr
Ejemplo strstr

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

{

char s1[13] = "Hola a todos";

char s2[3] = "la";

printf( "s1=%s\n", s1 );

printf( "s2=%s\n", s2 );

printf( "strstr(s1,s2) = %s\n", strstr( s1, s2 ) );

getch();

return 0;

}

ejemplo strlen
Ejemplo strlen

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

{

char s[13] = "Hola a todos";

printf( "s=%s\n", s );

printf( "strlen(s) = %d\n", strlen( s ) );

getch();

return 0;

}

ejemplo strcmp
Ejemplo strcmp

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

{

char s1[10] = "Abeja";

char s2[10] = "Abeja";

int i;

printf( "s1=%s\t", s1 );

printf( "s2=%s\n", s2 );

i = strcmp( s1, s2 );

printf( "s1 es " );

if( i < 0 ) printf( "menor que" );

else if( i > 0 ) printf( "mayor que" );

else printf( "igual a" );

printf( " s2 (strcmp = %d)\n",i);

getch();

return 0;

}

ejemplo strchr
Ejemplo strchr

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

{

char s[20] = "Hola amigos";

char c = 'a';

printf( "s=%s\t", s );

printf( "c=%c\n", c );

printf( "strchr=%s\n", strchr( s, c ) );

getch();

return 0;

}

ejemplo contar caracteres
Ejemplo contar caracteres

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

{

char cad1[50],cad2[50],*cad3;

int i=0;

printf("escriba cadeba: ");

gets(cad1);

printf("escriba cadeba a contar: ");

gets(cad2);

strcpy(cad3,cad1);

//localiza la primera ocurrencia

printf("AQUI");

cad3 = strstr(cad3,cad2);

//licaliza las demás ocurrencias

while(cad3!=NULL){

i++;

cad3 = strstr(cad3+1,cad2);

}

printf("\nSe encontraron %d ocurrencias.\n",i);

getch();

}

actividad1
Actividad

Cual es la salida del siguiente programa:

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

{

char cad1[50]="bienvenidos a Mexico";

char cad2[50];

strcpy(cad2,cad1);

printf("cad2 = %s\n",cad2);

strcat(cad1,strstr(cad2,"Mex"));

printf("cad1 = %s\n",cad1);

strncat(cad1,cad2,10);

printf("cad1 = %s\n",cad1);

getch();

}

slide36
Quiz

Escriba una sentencia utilizando las funciones de cadena para extraer las cadenas que se solicita de la cadena suministrada.

s1 = “San Luis Potosí” extraer “Luis”

Obtenga la cadena “esta es una cadena concatenada” a partir de las cadenas y las funciones de cadena (AYUDA: puede hacer llamadas anidadas de la función strcat)

s1 = “cadena ”

s2 = “concate”

s3 = “ es una ”

s4 = “esta”

strcpy(cad1,cad0)

strncpy(cad1,cad0,n)

strcat(cad1,cad0)

strncat(cad1,cad0,n)

strstr(cad1,cad0)

strlen(cad0)

strcmp(cad0,cad1)

strchr(cad,c)

arreglos de cadenas
Arreglos de cadenas

Un arreglo de cadenas es una arreglo bidimensional de caracteres.

Podemos ver el arreglo bidimensional como un arreglo de una dimensión de cadenas de caracteres.

Se pueden utilizar las funciones revisadas anteriormente en cada elemento del arreglo.

ordenaci n de una lista de nombres
Ordenación de una lista de nombres

#include <stdio.h>

#include <string.h>

#include <conio.h>

void intercambia(char cad1[50],char cad2[50]){

char temp[50];

strcpy(temp,cad1);

strcpy(cad1,cad2);

strcpy(cad2,temp);

}

void ordena(char lista[][50],int num){

int i,j;

for(i = 0;i<num-1;i++){

for(j = i+1;j<num;j++)

if(strcmp(lista[i],lista[j])>0)

intercambia(lista[i],lista[j]);

}

}

slide39

int leerLista(char lista[][50]){

int i=0,hecho=0;

char s[50];

printf("Escriba los nombres (FIN=terminar)\n");

do{

gets(lista[i]);

if(strcmp(lista[i],"FIN")!=0)

i++;

else

hecho = 1;

}while(!hecho);

return i;

}

void imprime(char lista[][50],int num){

int i;

for(i = 0;i<num;i++)

puts(lista[i]);

}

slide40

main(){

char nombres[50][50];

int total;

total = leerLista(nombres);

ordena(nombres,total);

imprime(nombres,total);

getch();

}

apuntadores
Apuntadores

Una variable de tipo apuntador contiene una dirección de memoria.

La dirección de memoria señalada por el apuntador es la que contiene el dato que puede ser de cualquier tipo, incluso void.

int entero, *pentero;

entero = 548;

pentero = &entero;

*pentero = -234;

entero

Asigna la dirección de entero a pentero

548

pentero

entero

548

pentero

entero

NOTA: a los apuntadores solo puede asignárseles: 0, NULL o una dirección

-234

ejemplo2
Ejemplo

#include <stdio.h>

#include <conio.h>

main(){

int entero,*pentero;

entero = 548;

pentero = &entero;

printf("La dirección de entero es %d\n",&entero);

printf("el valor de pentero es %d\n",pentero);

printf("el valor de entero es %d\n",entero);

printf("el valor de *pentero es %d\n",*pentero);

*pentero = -234;

printf("el valor de entero es %d\n",entero);

printf("el valor de *pentero es %d\n",*pentero);

getch();

}

aritm tica de apuntadores
Aritmética de apuntadores

Los apuntadores pueden utilizarse para acceder a los elementos de un arreglo.

#include <stdio.h>

#include <conio.h>

main(){

int a[10]={3,4,1,8,2,3,4,5,7,0},*b;

b = a;//b apunta al inicio del arreglo a

printf("dirección de b es %d, el contenido es %d\n",b,*b);

b = b + 1;//b apunta a a[1]

printf("dirección de b es %d, el contenido es %d\n",b,*b);

b = b + 3;//b apunta a a[4]

printf("dirección de b es %d, el contenido es %d\n",b,*b);

b = b - 2;//b apunta a a[2]

printf("dirección de b es %d, el contenido es %d\n",b,*b);

getch();

}

slide44

#include <stdio.h>

#include <conio.h>

main(){

double a[10]={3,4,1,8,2,3,4,5,7,0},*b;

b = a;//b apunta al inicio del arreglo a

printf("dirección de b es %d, el contenido es %lf\n",b,*b);

b = b + 1;//b apunta a a[1]

printf("dirección de b es %d, el contenido es %lf\n",b,*b);

b = b + 3;//b apunta a a[4]

printf("dirección de b es %d, el contenido es %lf\n",b,*b);

b = b - 2;//b apunta a a[2]

printf("dirección de b es %d, el contenido es %lf\n",b,*b);

getch();

}

apuntadores y sub ndices
Apuntadores y subíndices

La aritmética de apuntadores y los subíndices son equivalentes.

#include <stdio.h>

#include <conio.h>

main(){

double a[10]={3,4,1,8,2,3,4,5,7,0},*b;

int i;

b = a;//b apunta al inicio del arreglo a

for(i=0;i<10;i++)

printf("a[%d]=%lf\n",i,a[i]);

for(i=0;i<10;i++)

printf("*(b+%d)=%lf\n",i,*(b+i));

getch();

}

apuntadores a funciones
Apuntadores a funciones

Las funciones se comportan como apuntadores.

El nombre de la función es un apuntador al inicio del código de la función.

Las funciones pueden pasarse como parámetros a otras funciones.

ejemplo de apuntador a funci n
Ejemplo de apuntador a función

#include <stdio.h>

#include <conio.h>

#include <math.h>

void tabula(double a, double b,double (*fun)(double )){

double x,y;

for(x=a;x<=b;x+=(b-a)/10.0){

y = (*fun)(x);

printf("f(%lf) = %lf \n",x*180/3.1416,y);

}

}

main(){

tabula(0,3.1416/2,sin);

tabula(0,3.1416/2,cos);

getch();

}

salida de apuntador a funci n
Salida de apuntador a función

f(0.000000) = 0.000000

f(9.000000) = 0.156435

f(18.000000) = 0.309018

f(27.000000) = 0.453991

f(36.000000) = 0.587786

f(45.000000) = 0.707108

f(54.000000) = 0.809018

f(63.000000) = 0.891008

f(72.000000) = 0.951057

f(81.000000) = 0.987689

f(0.000000) = 1.000000

f(9.000000) = 0.987688

f(18.000000) = 0.951056

f(27.000000) = 0.891006

f(36.000000) = 0.809016

f(45.000000) = 0.707105

f(54.000000) = 0.587783

f(63.000000) = 0.453988

f(72.000000) = 0.309014

f(81.000000) = 0.156431

que valores tienen las variables
¿Que valores tienen las variables?

int x. *px:

float y, *py;

x = 5;

px = &x;

*px = 2*x + *px;

y = x;

py = y;

y = *py + x;

printf(“*p = %d x = %d\n”,*px,x);

printf(“*p = %f x = %f\n”,*py,y);

x *px y *py

slide50

Suponga la siguiente declaración:

float n1 = 7.3, n2;

Escriba una sentencia para cada una de las siguientes acciones:

Declare ptrF como un apuntador a un objeto tipo float

Asigne la dirección de n1 a ptrF

Despliegue el valor del objeto apuntado por ptrF

Asigne el valor del objeto apuntado por ptrF a n2

Despliegue el valor de n2

Despliegue la dirección de n1

Despliegue la dirección almacenada en ptrF

Asigne a ptrF la dirección de n2

Asigne al valor del objeto apuntado por ptrF el valor 8.1

Despliegue el valor de n1

Despliegue el valor de n2

funciones de cadenas estilo pascal
Funciones de cadenas estilo Pascal

Las siguientes funciones implementan algunas de las funciones y procedimientos utilizadas en el lenguaje Pascal. Supondremos que las cadenas están declaradas como arreglos de 256 caracteres (incluyendo el \0 de terminación).

Función Descripción

copystr extrae una subcadena de una cadena

deletestr borra una subcadena de una cadena

insert inserta una subcadena dentro de otra

pos busca una subcadena dentro de otra cadena

funci n copystr
Función copystr

void copystr(char s[256],char s1[256],int n,int c){

int i,l=strlen(s1);

if(l<n)s[0] = '\0';

else{

for(i=0;i<c&&i<l;i++)

s[i]=s1[n+i];

s[i]='\0';

}

}

funci n deletestr
Función deletestr

void deletestr(char s[256],int n,int c){

int i=0,l=strlen(s);

if(!(l<n))

while(s[i+n]){

s[i+n]=s[i+n+c];

i++;

}

}

funci n insertstr
Función insertstr

void insertstr(char s[256],char s1[256],int n){

int i,len=strlen(s);

char temp[256];

copystr(temp,s1,n,256);

for(i=0;i<len&&i<255;i++)

s1[i+n] = s[i];

for(i=0;i<len&&(i+n+len<255);i++)

s1[i+n+len] = temp[i];

s1[i+n+len] = '\0';

}

funci n pos
Función pos

int pos(char s1[256],char s2[256]){

int len1,len2,i,j1,j2;

len1 = strlen(s1);

len2 = strlen(s2);

for(i=0;i<=len2-len1;i++){

j1 = 0;

j2 = i;

while(s1[j1]==s2[j2]&&s1[j1]!='\0'){

j1++; j2++;

}

if(j1==len1)return i;

}

return -1;

}

ejemplo3
Ejemplo

main(){

char c1[256],c2[256];

strcpy(c1,"hola tal");

printf("c1 = %s\n",c1);

strcpy(c2,"que ");

printf("c2 = %s\n",c2);

insertstr("\"esta es una prueba \"",c1,5);

printf("inserta \"esta es una prueba \" en c1 = %s\n",c1);

deletestr(c1,0,8);

printf("borra de 0 a 8 en c1 = %s\n",c1);

deletestr(c1,10,7);

printf("borra de 10 a 17 en c1 = %s\n",c1);

deletestr(c1,16,5);

printf("borra de 16 a 21 en c1 = %s\n",c1);

printf("pos de \"una\" = %d\n",pos("una",c1));

printf("pos de \"xxx\" = %d\n",pos("xxx",c1));

printf("pos de \"tal\" = %d\n",pos("tal",c1));

getch();

}