Alguien sabe porque el espacio me ocupa 2 lugares?

Iniciado por Beginner Web, 9 Julio 2018, 04:10 AM

0 Miembros y 1 Visitante están viendo este tema.

Beginner Web

Tengo problemas al  definir la cantidad de espacios del arreglo de caracteres en 1 e inicializarla con un espacio entre comillas simple me sale que no se puede y al colocarle dos espacios al arreglo e inicializarlo con dos espacios y  doble comillas que son para cadanes si me deja  :o

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>

using namespace std;

int main(){
char nombre[40], apellido[40], completo[80]="Programadora: ", espacio[2]=" ";
cout << "Ingrese nombre: ";
gets(nombre);
cout << "Ingrese apellido: ";
gets(apellido);
strcat(completo,nombre);
strcat(completo,espacio);
strcat(completo,apellido);
cout << completo << endl;
system ("pause");
}


Datos de entrada:Maria Lux;
Datos de entrada:Grow;
Datos de salida:Programadora: Maria Lux Grow;

Gracias de antemano tios! ;-)
7w7

MAFUS

Una cadena siempre termina con el carácter \0, así que una cadena literal generada con comillas dobles tiene ese carácter al final que el compilador agrega automáticamente. También es la razón por lo que hay que agregar un carácter más a los arrays que realmente serán cadenas.

Un simple carácter de comillas simples no es una cadena, porque le falta el carácter de fin de cadena, y porque la variable que lo aloja no es un escalar entero, es decir, no es array ni puntero.

Beginner Web

7w7