Dev - C++ - Error de cadena tipo char

   
Vista:

Error de cadena tipo char

Publicado por Channyke (1 intervención) el 24/02/2018 20:24:19
Buenas tardes tengo que hacer un programa que pida al usuario el nombre y el apellido luego una las dos cadenas de caracteres en una función y las retorne e imprima, el programa me compila pero solo imprime la primera letra de la cadena que puedo hacer para solucionar este error?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
char nombap(char[],char[]);
int main()
{
 char cad1 [20];
 char cad2 [20];
 char cad3[100];
 cout<<"digite su nombre: "<<endl;
 cin.getline(cad1,20,'\n');
  cout<<"digite su apellido: "<<endl;
 cin.getline(cad2,20,'\n');
*cad3 =nombap(cad1,cad2);
 cout<<*cad3<<endl;
}
char nombap(char var1[],char var2[])
{
char var3[100];
	strcpy(var3,var1);
	strcat(var3,var2);
	return *var3;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error de cadena tipo char

Publicado por agustin (522 intervenciones) el 24/02/2018 22:09:06
Estas devolviendo un puntero a una variable que al retornar estará fuera de ámbito.
Hay varias formas de hacerlo:
1
2
3
4
5
6
7
int nombap(char var1[],char var2[],char var3[])
{
    strcpy(var3,var1);
    strcat(var3," ");
    strcat(var3,var2);
    return strlen(var3);
}
retornas el tamaño de la cadena resultante. Otro modo:
1
2
3
4
int nombap(char var1[],char var2[],char var3[])
{
    return sprintf(var3,"%s %s",var1,var2);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar