You are on page 1of 8

Colegio Nacional de Educación Profesional Técnica

Plantel Aguascalientes I Profr. J. Refugio Esparza Reyes


Profesional Técnico Bachiller en Informática
Turno Vespertino

Modulo
Programacion Orientada a Objetos
Actividad
Manejo de funciones de cadena c++
Docente
Yolanda Catalina Navarrete Beas.
Alumno
Maria Fernanda Limon Pedroza.
Grupo
410
Cuarto Semestre
Funciones Descripción Sintaxis
memcpy copia n bytes entre dos áreas de memoria /* memcpy example */
#include <stdio.h>
que no deben solaparse
#include <string.h>

struct {
char name[40];
int age;
} person, person_copy;

int main ()
{
char myname[] = "Pierre de Fermat";

/* using memcpy to copy string: */


memcpy ( person.name, myname,
strlen(myname)+1 );
person.age = 46;

/* using memcpy to copy structure: */


memcpy ( &person_copy, &person, sizeof(person)
);

printf ("person_copy: %s, %d \n",


person_copy.name, person_copy.age );

return 0;
}

memmove copia n bytes entre dos áreas de memoria; /* memmove example */


#include <stdio.h>
al contrario que memcpy las áreas pueden
#include <string.h>
solaparse
int main ()
{
char str[] = "memmove can be very useful......";
memmove (str+20,str+15,11);
puts (str);
return 0;
}

memchr busca un valor a partir de una dirección de /* memchr example */


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

memcmp compara los n primeros caracteres de dos /* memcmp example */


#include <stdio.h>
áreas de memoria #include <string.h>

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

int n;
n=memcmp ( buffer1, buffer2, 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;
}

memset sobre escribe un área de memoria con un /* memset example */


#include <stdio.h>
patrón de bytes dado #include <string.h>

int main ()
{
char str[] = "almost every programmer should know
memset!";
memset (str,'-',6);
puts (str);
return 0;
}

strcat añade una cadena al final de otra /* strcat example */


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

int main ()
{
char str[80];
strcpy (str,"these ");
strcat (str,"strings ");
strcat (str,"are ");
strcat (str,"concatenated.");
puts (str);
return 0;
}
strncat añade los n primeros caracteres de una /* memset example */
#include <stdio.h>
cadena al final de otra #include <string.h>

int main ()
{
char str[] = "almost every programmer should know
memset!";
memset (str,'-',6);
puts (str);
return 0;
}

strchr localiza un carácter en una cadena, * strchr example */


#include <stdio.h>
buscando desde el principio
#include <string.h>

int main ()
{
char str[] = "This is a sample string";
char * pch;
printf ("Looking for the 's' character in
\"%s\"...\n",str);
pch=strchr(str,'s');
while (pch!=NULL)
{
printf ("found at %d\n",pch-str+1);
pch=strchr(pch+1,'s');
}
return 0;
}

strrchr localiza un carácter en una cadena, /* strrchr example */


#include <stdio.h>
buscando desde el final #include <string.h>

int main ()
{
char str[] = "This is a sample string";
char * pch;
pch=strrchr(str,'s');
printf ("Last occurence of 's' found at %d \n",pch-
str+1);
return 0;
}

strcmp compara dos cadenas alfabéticamente #include <stdio.h>


#include <string.h>
('a'!='A')
int main ()
{
char key[] = "apple";
char buffer[80];
do {
printf ("Guess my favorite fruit? ");
fflush (stdout);
scanf ("%79s",buffer);
} while (strcmp (key,buffer) != 0);
puts ("Correct answer!");
return 0;
}

strncmp compara los n primeros caracteres de dos /* strncmp example */


#include <stdio.h>
cadenas numéricamente ('a'!='A') #include <string.h>

int main ()
{
char str[][5] = { "R2D2" , "C3PO" , "R2A6" };
int n;
puts ("Looking for R2 astromech droids...");
for (n=0 ; n<3 ; n++)
if (strncmp (str[n],"R2xx",2) == 0)
{
printf ("found %s\n",str[n]);
}
return 0;
}

strcoll compara dos cadenas según la colación include <cstring>


actual ('a'=='A') #include <iostream>
using namespace std;
int main()
{
char lhs[] = "Armstrong";
char rhs[] = "Army";
int result;
result = strcoll(lhs,rhs);

cout << "In the current locale ";


if(result > 0)
cout << rhs << " precedes " <<
lhs << endl;
else if (result < 0)
cout << lhs << " precedes " <<
rhs << endl;
else
cout << lhs << " and " << rhs
<< " are same" << endl;

return 0;
}

strcpy copia una cadena en otra #include <cstring>


#include <iostream>
using namespace std;
int main()
{
char src[] = "Hello Programmers.";
char dest[20];
strcpy(dest,src);
cout << dest;
return 0;
}
strncpy copia los n primeros caracteres de una /* strncpy example */
#include <stdio.h>
cadena en otra #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 ( str2, str1, sizeof(str2) );

/* partial copy (only 5 chars): */


strncpy ( str3, str2, 5 );
str3[5] = '\0'; /* null character manually added */

puts (str1);
puts (str2);
puts (str3);

return 0;
}

strerror devuelve la cadena con el mensaje de /* strerror example : error list */


#include <stdio.h>
error correspondiente al número de error #include <string.h>
dado #include <errno.h>

int main ()
{
FILE * pFile;
pFile = fopen ("unexist.ent","r");
if (pFile == NULL)
printf ("Error opening file unexist.ent:
%s\n",strerror(errno));
return 0;
}

strlen devuelve la longitud de una cadena /* strlen example */


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

int main ()
{
char szInput[256];
printf ("Enter a sentence: ");
gets (szInput);
printf ("The sentence entered is %u
characterslong.\n",(unsigned)strlen(szInput));
return 0;
}

strspn devuelve la posición del primer carácter de /* strspn example */


#include <stdio.h>
una cadena que no coincide con ninguno #include <string.h>
de los caracteres de otra cadena dada
int main ()
{
int i;
char strtext[] = "129th";
char cset[] = "1234567890";

i = strspn (strtext,cset);
printf ("The initial number has %d digits.\n",i);
return 0;
}

strcspn devuelve la posición del primer carácter /* strcspn example */


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

strpbrk encuentra la primera ocurrencia de alguno /* strpbrk example */


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

strstr busca una cadena dentro de otra /* strstr example */


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

int main ()
{
char str[] ="This is a simple string";
char * pch;
pch = strstr (str,"simple");
strncpy (pch,"sample",6);
puts (str);
return 0;
}

strtok parte una cadena en una secuencia de /* strtok example */


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

int main ()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.-");
}
return 0;
}

strxfrm Transforma una cadena en su forma de #include <iostream>


colación (??) #include <iomanip>
#include <cstring>
#include <string>
#include <cassert>

int main()
{
char* loc = std::setlocale(LC_COLLATE,
"cs_CZ.iso88592");
assert(loc);

std::string in1 = "hrnec";


std::string out1(1+std::strxfrm(nullptr,
in1.c_str(), 0), ' ');
std::string in2 = "chrt";
std::string out2(1+std::strxfrm(nullptr,
in2.c_str(), 0), ' ');

std::strxfrm(&out1[0], in1.c_str(), out1.size());


std::strxfrm(&out2[0], in2.c_str(), out2.size());

std::cout << "In the Czech locale: ";


if(out1 < out2)
std::cout << in1 << " before " << in2 <<
'\n';
else
std::cout << in2 << " before " << in1 <<
'\n';

std::cout << "In lexicographical comparison:


";
if(in1 < in2)
std::cout << in1 << " before " << in2 <<
'\n';
else
std::cout << in2 << " before " << in1 <<
'\n';

strrev invierte una cadena #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];
}

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";
}

You might also like