| 
	
		|  Autor | Tema: como pasar variable de una a otra desde una funcion  (Leído 9,670 veces) |  
	| 
			| 
					
						| geshiro 
								
								 Desconectado 
								Mensajes: 178
								
								
								
								
								
								   | 
 
como puedo hacr que en mi funcion recursiva pase a mi variable str3 todo el valor de la funcion recursiva  #include <iostream>using namespace std;char str1[20],str2[20],str3[20];void myStrcat(char [],char []); void myStrcat(char str1[],char str2[]){	int c,d;	 c = 0;    while(str1[c] != '\0') {      c++;  	   }    d = 0;    while(str2[d] != '\0'){      str1[c] = str2[d];      d++;      c++;	   }    str1[c] = '\0';}  int main(){	cout << "Enter first string: " << endl;	cin >> str1;	cout << "Enter secound string: " << endl;	cin >> str2;	myStrcat(str1,str2);		cout << "Result is " << str1 << endl;} 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| HardForo 
								
								 Desconectado 
								Mensajes: 219
								
								 
								HardForo.com
								
								
								
								
								
								     | 
 
No veo ninguna funcion recursiva   
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 HardForo:  foro de Hardware y programación Se buscan Mods y colaboradores * |  |  |  | 
			| 
					
						| geshiro 
								
								 Desconectado 
								Mensajes: 178
								
								
								
								
								
								   | 
 
 aqui esta me da error de Segmentation fault     #include <iostream>using namespace std;void myStrcat(char [],char [],char []);char str1[20],str2[20],str3[20];void myStrcat(char str1[],char str2[], char str3[]){	int c,d;     c = 0; 	if((str1 != '\0') && (str2 != '\0')){		str3 = str1;		myStrcat(str1+1, str2, str3+1);	}else if((str1 == '\0') && (str2 != '\0')){		str3 = str2;		myStrcat(str1+1, str2, str3+1);	}	str3[c] = '\0';}  int main(){	cout << "Enter first string: " << endl;	cin >> str1;	cout << "Enter secound string: " << endl;	cin >> str2;	myStrcat(str1,str2,str3);	cout << "Result is " << str3 << endl;} 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| AlbertoBSD 
								Programador y 
								Moderador Global
								      Desconectado 
								Mensajes: 3.703
								
								 
								🏴 Libertad!!!!!
								
								
								
								
								
								     | 
 
Tu funcion tiene buffer overflow si lo que quieres es concatenar cadenas la funcion recursiva no te sirve..
 Te recomiendo usar memset strlen y si acaso snprintf
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| engel lex | 
 
tienes un par de problemas confusos myStrcat(str1,str2,str3);debería ser yStrcat(&str1,&str2,&str3);por ser array (str1 != '\0') && (str2 != '\0')está mal porque los 3 str son array, y no pueden ser '\0' eso inplicaría que son un punto de esa cadena myStrcat(str1+1, str2, str3+1);estás sumandole un entero a un array char...  en alguno de estos puntos es el segmentation (o en todos) |  
						| 
								|  |  
								|  |  En línea | 
 
 El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
 |  |  |  | 
			| 
					
						| geshiro 
								
								 Desconectado 
								Mensajes: 178
								
								
								
								
								
								   | 
 
entonces los tendria que cambar POR null?
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| geshiro 
								
								 Desconectado 
								Mensajes: 178
								
								
								
								
								
								   | 
 
como podria modificar mi funcion para que pueda concatenar
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| AlbertoBSD 
								Programador y 
								Moderador Global
								      Desconectado 
								Mensajes: 3.703
								
								 
								🏴 Libertad!!!!!
								
								
								
								
								
								     | 
 
char *myStrcat(char *str1,char *str2){	char *nuevo = calloc( len +1,sizeof(char));	return nuevo;}
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| geshiro 
								
								 Desconectado 
								Mensajes: 178
								
								
								
								
								
								   | 
 
pero no puedo usar funciones ni punteros por eso lo puse global los arreglos :/ |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| engel lex | 
 
pero no puedo usar funciones ni punteros por eso lo puse global los arreglos :/ ya fallaste void myStrcat(char str1[],char str2[], char str3[])eso es una función con punteros como argumentos XD si vas a pasar array inevitablemente se hace uso de punteros, en su defecto declara los array globales y mystrcat no lleva argumentos, (a demás por ser globales pueden producir comportamiento no esperado) simplemente la llamas y sabe que str3 va todo lo de 1 y 2 |  
						| 
								|  |  
								|  |  En línea | 
 
 El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Guardar salida de funcion en otra variable Programación C/C++
 | dennis094 | 2 | 2,866 |  27 Noviembre 2013, 18:04 pm por dennis094
 |  
						|   |   | Pasar nombre de funcion como parametro de otra funcion en java Java
 | xGisKaRDx | 3 | 11,366 |  1 Agosto 2014, 23:27 pm por jhonatanAsm
 |  
						|   |   | Función para saber si alguna variable es igual a otra Programación Visual Basic
 | juanlulete | 4 | 2,754 |  28 Junio 2015, 01:06 am por R3Z
 |  
						|   |   | ¿Como cambiar un puntero de caracteres desde otra función? Programación C/C++
 | PabloPbl | 6 | 4,413 |  13 Diciembre 2015, 14:49 pm por PabloPbl
 |  
						|   |   | pasar datos de una variable a otra ??? .NET (C#, VB.NET, ASP)
 | luis456 | 0 | 4,791 |  1 Marzo 2020, 14:18 pm por luis456
 |    |