Sunteți pe pagina 1din 8

MANEJO DE FUNCIONES DE

CADENA
Yolanda Catalina Navarrete Beas

13 DE MARZO DE 2018
GIOVANNI ESTRADA BUSTOS
Giovas.26.23@gmail.com
Funciones Descripción Sintaxis

#include <stdio.h>
#include <string.h>

int main()
{
char a[7] = "abcdefg";
char *ptr;
int i;

memcpy copia n bytes entre dos áreas de


memcpy( ptr, a, 5 );
memoria que no deben solaparse for( i=0; i<7; i++ )
printf( "a[%d]=%c ", i, a[i] );
printf( "\n" );
for( i=0; i<5; i++ )
printf( "ptr[%d]=%c ", i, ptr[i] );
printf( "\n" );

return 0;
}
#include <stdio.h>
#include <string.h>

int main ()
{
const char dest[] = "oldstring";
copia n bytes entre dos áreas de const char src[] = "newstring";
memmove memoria; al contrario
que memcpy las áreas pueden printf("Before memmove dest = %s, src =
solaparse %s\n", dest, src);
memmove(dest, src, 9);
printf("After memmove dest = %s, src =
%s\n", dest, src);

return(0);
}
#include <stdio.h>
#include <string.h>

int main ()
{
busca un valor a partir de una char * pch;
dirección de memoria dada y char str[] = "Example string";
memchr devuelve un puntero a la primera pch = (char*) memchr (str, 'p', strlen(str));
ocurrencia del valor buscado if (pch!=NULL)
o NULL si no se encuentra printf ("'p' found at position %d.\n", pch-
str+1);
else
printf ("'p' not found.\n");
return 0;
}
#include <stdio.h>
#include <string.h>

int main ()
{
char buffer1[] = "DWgaOtP12df0";
char buffer2[] = "DWGAOTP12DF0";

int n;

memcmp compara los n primeros caracteres n=memcmp ( buffer1, buffer2,


de dos áreas de memoria sizeof(buffer1) );

if (n>0) printf ("'%s' is greater than


'%s'.\n",buffer1,buffer2);
else if (n<0) printf ("'%s' is less than
'%s'.\n",buffer1,buffer2);
else printf ("'%s' is the same as
'%s'.\n",buffer1,buffer2);

return 0;
}
#include <stdio.h>
#include <string.h>

int main ()
{
memset sobre escribe un área de memoria
char str[] = "almost every programmer
con un patrón de bytes dado should know memset!";
memset (str,'-',6);
puts (str);
return 0;
}
char *strcat (char *dest, const char *src)
{
const char *p;
char *q;
for (q = dest; *q != '\0'; q++)
strcat añade una cadena al final de otra ;
for(p = src; *p != '\0'; p++, q++)
*q = *p;
*q = '\0';
return dest;
}
#include <stdio.h>
#include <string.h>

int main ()
{
strncat añade los n primeros caracteres
char str[] = "almost every programmer
de una cadena al final de otra should know memset!";
memset (str,'-',6);
puts (str);
return 0;
}
#include <stdio.h>
#include <string.h>

int main ()
{
char str[] = "This is a sample string";
char * pch;
localiza un carácter en una printf ("Looking for the 's' character in
strchr cadena, buscando desde el \"%s\"...\n",str);
principio pch=strchr(str,'s');
while (pch!=NULL)
{
printf ("found at %d\n",pch-str+1);
pch=strchr(pch+1,'s');
}
return 0;
}
#include <stdio.h>
#include <string.h>

int main ()
{
strrchr localiza un carácter en una char str[] = "This is a sample string";
cadena, buscando desde el final char * pch;
pch=strrchr(str,'s');
printf ("Last occurence of 's' found at %d
\n",pch-str+1);
return 0;
}
if (strcmp(str1,str2) == 0)
{
strcmp compara dos cadenas printf("Son iguales!.\n");
alfabéticamente ('a'!='A') }
int strcmp(const char * s1,const char * s2,
size_t num);
#include <stdio.h>
#include <string.h>

int main ()
compara los n primeros caracteres {
strncmp de dos cadenas numéricamente
char str[] = "This is a sample string";
char * pch;
('a'!='A') pch=strrchr(str,'s');
printf ("Last occurence of 's' found at %d
\n",pch-str+1);
return 0;
}
int strcoll ( const char * str1, const char * str2
strcoll compara dos cadenas según la )
colación actual ('a'=='A')

#include<iostream.h>
strcpy #include<conio.h>
copia una cadena en otra #include<string.h>
using namespace std;

int main()
{
float venta[100],auxV,suma=0;
char vendedor[100][30],aux[30];
int i,j,n;
cout<<"ingrese la cantidad de Vendedores:";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"Vendedor "<<i+1<<endl;
cout<<"Nombre Vendedor:";
cin>>vendedor[i];
cout<<"Importe de su Venta:";
cin>>venta[i];
suma+=venta[i];
}
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if (venta[i]>venta[j])
{
auxV=venta[i];
venta[i]=venta[j];
venta[j]=auxV;
strcpy(aux,vendedor[i]);
strcpy(vendedor[i],vendedor[j]);
strcpy(vendedor[j],aux);
}
cout<<"Venta Maxima: "<<venta[n-1]<<"
Realizado por "<<vendedor[n-1]<<endl;
cout<<"Venta Minima: "<<venta[0]<<"
Realizado por "<<vendedor[0]<<endl;
cout<<"Venta Promedio:"<<suma/n;
getch();
return 0;
}
#include <stdio.h>
#include <string.h>

int main ()
{
char str1[]= "To be or not to be";
char str2[40];
char str3[40];

/* copy to sized buffer (overflow safe): */


strncpy copia los n primeros caracteres de
strncpy ( str2, str1, sizeof(str2) );
una cadena en otra
/* partial copy (only 5 chars): */
strncpy ( str3, str2, 5 );
str3[5] = '\0'; /* null character manually
added */

puts (str1);
puts (str2);
puts (str3);
return 0;
}

#include <stdio.h>
#include <string.h>
#include <errno.h>

int main ()
devuelve la cadena con el {
strerror mensaje de error correspondiente FILE * pFile;
al número de error dado pFile = fopen ("unexist.ent","r");
if (pFile == NULL)
printf ("Error opening file unexist.ent:
%s\n",strerror(errno));
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;

int main() {
char *cadena = "Una cadena C++ termina
strlen devuelve la longitud de una con cero";
cadena
cout << "La cadena: [" << cadena << "] tiene
"
<< {f:strlen}(cadena) << " caracteres" <<
endl;
return 0;
}
#include <stdio.h>
#include <string.h>

int main ()
{
devuelve la posición del primer int i;
strspn carácter de una cadena que no char strtext[] = "129th";
coincide con ninguno de los char cset[] = "1234567890";
caracteres de otra cadena dada
i = strspn (strtext,cset);
printf ("The initial number has %d
digits.\n",i);
return 0;
}
#include <stdio.h>
#include <string.h>

devuelve la posición del primer int main ()


{
strcspn carácter que coincide con alguno
char str[] = "fcba73";
de los caracteres de otra cadena char keys[] = "1234567890";
dada int i;
i = strcspn (str,keys);
printf ("The first number in str is at position
%d.\n",i+1);
return 0;
}

#include <stdio.h>
#include <string.h>

int main ()
{
char str[] = "This is a sample string";
char key[] = "aeiou";
char * pch;
encuentra la primera ocurrencia
strpbrk printf ("Vowels in '%s': ",str);
de alguno de los caracteres de pch = strpbrk (str, key);
una cadena dada en otra while (pch != NULL)
{
printf ("%c " , *pch);
pch = strpbrk (pch+1,key);
}
printf ("\n");
return 0;
}
#include <stdio.h>
#include <string.h>

int main ()
{
strstr char str[] ="This is a simple string";
busca una cadena dentro de otra char * pch;
pch = strstr (str,"simple");
strncpy (pch,"sample",6);
puts (str);
return 0;
}
#include <stdio.h>
#include <string.h>

int main ()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into
strtok parte una cadena en una
tokens:\n",str);
secuencia de tokens pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.-");
}
return 0;
}
size_t strxfrm ( char * destination, const char
strxfrm transforma una cadena en su * source, size_t num );
forma de colación (??)
#include<iostream>
#include<string.h>
using namespace std;

main(){

int x,i;
cout<<"Enter the size of array:";
cin>>x;
cout<<"Enter "<< x <<" elements in array:";
char ch1[x] ;
for(i=0; i<x; i++){
cin>>ch1[i];
}
char ch2[x] = {0};

for(i=0; i<x; i++){


ch2[i] = ch1[i];
}
strrev invierte una cadena cout<<"Copied array is:";
for(i=0; i<x; i++){
cout<<ch2[i];
}

cout<<endl;
strrev(ch2);
cout<<ch2;

if(ch1[x] == ch2[x]){
cout<<"\nPalindrom";
}else{
cout<<"\nNot palindrom";
}

S-ar putea să vă placă și