Autor
|
Tema: como pasar variable de una a otra desde una funcion (Leído 8,354 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.705
🏴 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.705
🏴 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,581
|
27 Noviembre 2013, 18:04 pm
por dennis094
|
|
|
Pasar nombre de funcion como parametro de otra funcion en java
Java
|
xGisKaRDx
|
3
|
10,324
|
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,318
|
28 Junio 2015, 01:06 am
por R3Z
|
|
|
¿Como cambiar un puntero de caracteres desde otra función?
Programación C/C++
|
PabloPbl
|
6
|
3,847
|
13 Diciembre 2015, 14:49 pm
por PabloPbl
|
|
|
pasar datos de una variable a otra ???
.NET (C#, VB.NET, ASP)
|
luis456
|
0
|
3,675
|
1 Marzo 2020, 14:18 pm
por luis456
|
|