Manejo de apuntadores y cadenas en C++
#include<iostream>
#include<ctype.h>
#include<string>
void manejo1(char *,const char *);
void manejo2(char *,const char *,int);
using namespace std;
int main(){
char cad1[25],*cad2="Acuerdo...amigo",cad4[]="LEY...enemigo";
manejo1(cad1,cad2);
int n=strlen(cad1); // tamanho del arreglo cad1 después de copiar
manejo2(cad1,cad4,n); //copia cad4 en cad1 pero comenzando en la posición n
cout<<cad1<<endl;
system("pause");
return 0;
}
void manejo1(char *s1,const char *s2){ /// esta función copia s2 en s1
for(;(*s1=*s2)!='\0';s1++,s2++) ;
}
void manejo2(char *s1,const char *s2,int n){
//copia s2 en s1 pero comenzando en la posición n
s1+=n; // aquí se salta de la posición 0 a la posición n
do{
if(*s2=='L') *s1=' '; // cuando encuentra una L la sustituye por espacio
else
if(*s2=='E'||*s2=='Y') *s1=tolower(*s2); //encuentra E o Y las hace minúsculas
else *s1=*s2;
s1++; // aumenta la posición del apuntador
s2++;
}while(*s2!='\0');
*s1='\0'; // en el último le coloca el fin de línea
}
/// a continuación salida del programa
/// véase como hubo un sobre flujo en cad1 a pesar de tener sólo 25 de tamaño
#include<ctype.h>
#include<string>
void manejo1(char *,const char *);
void manejo2(char *,const char *,int);
using namespace std;
int main(){
char cad1[25],*cad2="Acuerdo...amigo",cad4[]="LEY...enemigo";
manejo1(cad1,cad2);
int n=strlen(cad1); // tamanho del arreglo cad1 después de copiar
manejo2(cad1,cad4,n); //copia cad4 en cad1 pero comenzando en la posición n
cout<<cad1<<endl;
system("pause");
return 0;
}
void manejo1(char *s1,const char *s2){ /// esta función copia s2 en s1
for(;(*s1=*s2)!='\0';s1++,s2++) ;
}
void manejo2(char *s1,const char *s2,int n){
//copia s2 en s1 pero comenzando en la posición n
s1+=n; // aquí se salta de la posición 0 a la posición n
do{
if(*s2=='L') *s1=' '; // cuando encuentra una L la sustituye por espacio
else
if(*s2=='E'||*s2=='Y') *s1=tolower(*s2); //encuentra E o Y las hace minúsculas
else *s1=*s2;
s1++; // aumenta la posición del apuntador
s2++;
}while(*s2!='\0');
*s1='\0'; // en el último le coloca el fin de línea
}
/// a continuación salida del programa
/// véase como hubo un sobre flujo en cad1 a pesar de tener sólo 25 de tamaño
Comentarios
Publicar un comentario