Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Informática I][Aporte] Funciones de string
Autor Mensaje
Feer Sin conexión
Presidente del CEIT
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.487 en 411 posts
Registro en: Apr 2010
Mensaje: #1
[Informática I][Aporte] Funciones de string Apuntes y Guias Informática I (Electrónica)
Les dejo todas las funciones de string que necesitan, todas las funciones compilan sin errores ni warnings, se pueden usar en los proyectos si quieren, al menos yo las utilice para no usar las de string.h y dejarlo mas lindo jaja.
Un saludo.


/**
* \fn int void left_trim(char *palabra);
* \brief Elimina el espacio al principio de la palabra.
* \author Feer.
* \date
* \param Entrada de la palabra.
* \return No retorna parametros.
*/

void left_trim(char *palabra){

int i,j;

for (i=0,j=0;*(palabra+i)!=0;i++){
if(*(palabra+i)!=' '){

*(palabra+j) = *(palabra+i);
j++;
}
}
*(palabra+j) = 0;
}



/**
* \fn int void right_trim(char *palabra);
* \brief Sobreescribe a la palaabra con espacios en blanco.
* \author Feer
* \date
* \param Entrada de la palabra.
* \return No retorna parametros.
*/

void right_trim(char *palabra){

int i,j,fin;

fin = my_strlen (palabra);
for (i=fin,j=fin;palabra[i]<=fin;i--){
if(palabra[i]!=' '){
palabra[j]=palabra[i];
j--;
}
}
palabra[j]=0;
}





/**
* \fn void my_strcat(char *t, const char *s);
* \brief Concatena las palabras recibidas en el argumento.
* \author Feer
* \date
* \param Entrada de las dos palabras.
* \return No retorna resultados.
*/

void my_strcat(char *palabraA, const char *palabraB){

int i,j;
int fin;
//Busco la el tamaño de la palabra a la cual voy a concatenar con la segunda palabra ingresada.
fin = my_strlen(palabraA);
//Aumento el contador a partir de la posicion de fin (primera palabra) y posicion 0 de la segunda palabra.
for(i = fin, j = 0; *(palabraB + j) != 0; j++, i++){
*(palabraA + i) = *(palabraB + j);
}
//Finalizo el vector.
*(palabraA + i) = 0;
}



/**
* \fn void my_strcat(char *t, const char *s);
* \brief Compara las palabras introducidas por teclado.
* \author Feer
* \date
* \param Entrada de las dos palabras.
* \return Retorna la comparación.
*/

int my_strcmp(const char *t,const char *s){

int i;
for(i=0; t[i] == s[i] && s[i]!=0 && t[i]!=0; i++);

if (t[i]==s[i]){
return(0);
}
else{
if(t[i]<s[i]){
return(1);
}
else{
return (-1);
}
}
}



/**
* \fn void my_strcpy (char *t, const char *s);
* \brief Copia una palabra en otra dirección de memoria.
* \author Feer
* \date
* \param Entrada de la palabra.
* \return No retorna resultados.
*/

void my_strcpy (char *t, const char *s){

int i;
for (i=0;*(s+i)!=0;i++){
//Guarda el contenido de una posicion del vector en otro vector.
*(t+i) = *(s+i);
}
*(t+i) = 0;
}




/**
* \fn int my_strlen (const char *);
* \brief Calcula la longitud de una palabra introducida por teclado. (4.4)
* \author Feer
* \date
* \param Entrada de la palabra.
* \return Retorna la longitud de la palabra.
*/

int my_strlen (const char *palabra){

int i;
//Si la posicion de palabra+i es distinta de 0, incremento, al salir del for terno un numero el cual coincide con la longitud de la palabra.
for (i=0;*(palabra+i)!=0;i++);
return (i);
}




/**
* \fn void strlwr(char *cadena)
* \brief Reemplaza los caracteres mayusculas por minusculas.
* \author Feer
* \date
* \param Entrada de la palabra.
* \return No retorna.
*/

void strlwr(char *cadena){
int i, len;
len = my_strlen(cadena);
for(i=0; i< len; i++){
if( *(cadena + i)>='A' && *(cadena + i) <= 'Z') *(cadena + i ) += 'a' -'A';
}
}




/**
* \fn bool my_strstr(char *big, char *sub);
* \brief Compara el conjunto y el posible subconjunto.
* \author Feer
* \date
* \param Entradas de s1 y s2.
* \return Retorna un valor segun su condicion de verdad.
*/

bool my_strstr(char *big, char *sub){

int i,j;
int ret=0;

for (i=0,j=0;big[i]!=0 && sub[j]!=0;i++){
if(big[i] == sub[j]){
ret = true;
j++;
}
else{
j = 0;
ret = false;
}
}
return (ret);
}



/**
* \fn void strupr(char *cadena)
* \brief Reemplaza los caracteres minuscula por mayusculas.
* \author Feer
* \date
* \param Entrada de la palabra.
* \return No retorna.
*/

void strupr(char *cadena){
int i, len;
len = my_strlen(cadena);
for(i=0; i< len; i++){
if( *(cadena + i)>= 'a' && *(cadena + i) <= 'z') *(cadena + i ) -= 'a' - 'A';
}
}

[Imagen: digitalizartransparent.png]
13-10-2012 01:26
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Feer recibio 3 Gracias por este post
H3rnst (13-10-2012), de_lea's (16-10-2012), nicotombino (20-11-2014)
H3rnst Sin conexión
Secretario de la SAE
Overlord
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 583
Agradecimientos dados: 149
Agradecimientos: 49 en 23 posts
Registro en: Sep 2010
Mensaje: #2
RE: [Informática I][Aporte] Funciones de string
Indentadas y en los bloques code quedan MÁS lindas todavía, jajaja.

Gracias por el aporte capo thumbup3



/**
* \fn int void left_trim(char *palabra);
* \brief Elimina el espacio al principio de la palabra.
* \author Feer.
* \date
* \param Entrada de la palabra.
* \return No retorna parametros.
*/

void left_trim(char *palabra){
int i,j;

for (i=0,j=0;*(palabra+i)!=0;i++){

if(*(palabra+i)!=' '){
*(palabra+j) = *(palabra+i);
j++;
}
}
*(palabra+j) = 0;
}




/**
* \fn int void right_trim(char *palabra);
* \brief Sobreescribe a la palaabra con espacios en blanco.
* \author Feer
* \date
* \param Entrada de la palabra.
* \return No retorna parametros.
*/

void right_trim(char *palabra){

int i,j,fin;

fin = my_strlen (palabra);
for (i=fin,j=fin;palabra[i]<=fin;i--){
if(palabra[i]!=' '){
palabra[j]=palabra[i];
j--;
}
}
palabra[j]=0;
}





/**
* \fn void my_strcat(char *t, const char *s);
* \brief Concatena las palabras recibidas en el argumento.
* \author Feer
* \date
* \param Entrada de las dos palabras.
* \return No retorna resultados.
*/

void my_strcat(char *palabraA, const char *palabraB){

int i,j;
int fin;
//Busco la el tamaño de la palabra a la cual voy a concatenar con la segunda palabra ingresada.
fin = my_strlen(palabraA);
//Aumento el contador a partir de la posicion de fin (primera palabra) y posicion 0 de la segunda palabra.
for(i = fin, j = 0; *(palabraB + j) != 0; j++, i++){
*(palabraA + i) = *(palabraB + j);
}
//Finalizo el vector.
*(palabraA + i) = 0;
}





/**
* \fn void my_strcat(char *t, const char *s);
* \brief Compara las palabras introducidas por teclado.
* \author Feer
* \date
* \param Entrada de las dos palabras.
* \return Retorna la comparación.
*/

int my_strcmp(const char *t,const char *s){

int i;
for(i=0; t[i] == s[i] && s[i]!=0 && t[i]!=0; i++);

if (t[i]==s[i]){
return(0);
}
else {
if(t[i]<s[i]){
return(1);
}
else{
return (-1);
}
}
}





/**
* \fn void my_strcpy (char *t, const char *s);
* \brief Copia una palabra en otra dirección de memoria.
* \author Feer
* \date
* \param Entrada de la palabra.
* \return No retorna resultados.
*/

void my_strcpy (char *t, const char *s){

int i;
for (i=0;*(s+i)!=0;i++){
//Guarda el contenido de una posicion del vector en otro vector.
*(t+i) = *(s+i);
}
*(t+i) = 0;
}





/**
* \fn int my_strlen (const char *);
* \brief Calcula la longitud de una palabra introducida por teclado. (4.4)
* \author Feer
* \date
* \param Entrada de la palabra.
* \return Retorna la longitud de la palabra.
*/

int my_strlen (const char *palabra){

int i;
//Si la posicion de palabra+i es distinta de 0, incremento, al salir del for terno un numero el cual coincide con la longitud de la palabra.
for (i=0;*(palabra+i)!=0;i++);
return (i);
}





/**
* \fn void strlwr(char *cadena)
* \brief Reemplaza los caracteres mayusculas por minusculas.
* \author Feer
* \date
* \param Entrada de la palabra.
* \return No retorna.
*/

void strlwr(char *cadena){
int i, len;
len = my_strlen(cadena);
for(i=0; i< len; i++){
if( *(cadena + i)>='A' && *(cadena + i) <= 'Z') *(cadena + i ) += 'a' -'A';
}
}






/**
* \fn bool my_strstr(char *big, char *sub);
* \brief Compara el conjunto y el posible subconjunto.
* \author Feer
* \date
* \param Entradas de s1 y s2.
* \return Retorna un valor segun su condicion de verdad.
*/

bool my_strstr(char *big, char *sub){

int i,j;
int ret=0;

for (i=0,j=0;big[i]!=0 && sub[j]!=0;i++){
if(big[i] == sub[j]){
ret = true;
j++;
}
else{
j = 0;
ret = false;
}
}
return (ret);
}





/**
* \fn void strupr(char *cadena)
* \brief Reemplaza los caracteres minuscula por mayusculas.
* \author Feer
* \date
* \param Entrada de la palabra.
* \return No retorna.
*/

void strupr(char *cadena){
int i, len;
len = my_strlen(cadena);
for(i=0; i< len; i++){
if( *(cadena + i)>= 'a' && *(cadena + i) <= 'z') *(cadena + i ) -= 'a' - 'A';
}
}



[Imagen: Hernst.png]
(Este mensaje fue modificado por última vez en: 13-10-2012 10:30 por H3rnst.)
13-10-2012 10:28
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Feer Sin conexión
Presidente del CEIT
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.487 en 411 posts
Registro en: Apr 2010
Mensaje: #3
RE: [Informática I][Aporte] Funciones de string
Ayer había un error fatal cuando se subía por eso no las puse en código... Pero intentamos, la íbamos a poner hoy...
Gracas=)

[Imagen: digitalizartransparent.png]
13-10-2012 11:57
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
brunodiaz Sin conexión
The Dark Knight
Bla
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 7.762
Agradecimientos dados: 136
Agradecimientos: 381 en 132 posts
Registro en: May 2008
Mensaje: #4
RE: [Informática I][Aporte] Funciones de string
Arreglado el problema en los codes
Parece que totalmente solo, yo no hice nada =P

Hoy lo reviso por si las dudas
13-10-2012 12:40
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
marian99 Sin conexión
Secretario de la SAE
.-
******

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 480
Agradecimientos dados: 34
Agradecimientos: 166 en 81 posts
Registro en: Mar 2009
Mensaje: #5
RE: [Informática I][Aporte] Funciones de string
Util !!
17-10-2012 16:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.