<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>http://wiki.cabal.mx/index.php?action=history&amp;feed=atom&amp;title=Curso_de_Programaci%C3%B3n_en_C%2FProg121</id>
	<title>Curso de Programación en C/Prog121 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.cabal.mx/index.php?action=history&amp;feed=atom&amp;title=Curso_de_Programaci%C3%B3n_en_C%2FProg121"/>
	<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog121&amp;action=history"/>
	<updated>2026-05-04T00:42:39Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.32.1</generator>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog121&amp;diff=5539&amp;oldid=prev</id>
		<title>Perseuz: /* Prog121 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog121&amp;diff=5539&amp;oldid=prev"/>
		<updated>2014-06-06T18:09:14Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Prog121&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog121 | Funciones que regresan structs]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog121 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_FANCY_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define MAXNOMBRELEN 20&lt;br /&gt;
&lt;br /&gt;
struct NombreConteo&lt;br /&gt;
{&lt;br /&gt;
  char Nombre[MAXNOMBRELEN];&lt;br /&gt;
  char Apellido[MAXNOMBRELEN];&lt;br /&gt;
  int Letras;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct NombreConteo ObtenInfo( void );&lt;br /&gt;
struct NombreConteo mkInfo( struct NombreConteo );&lt;br /&gt;
void DesplegaInfo( const struct NombreConteo );&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  struct NombreConteo Persona;&lt;br /&gt;
&lt;br /&gt;
  Persona = ObtenInfo();&lt;br /&gt;
  Persona = mkInfo( Persona );&lt;br /&gt;
  DesplegaInfo( Persona );&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct NombreConteo ObtenInfo( void )&lt;br /&gt;
{&lt;br /&gt;
  struct NombreConteo temp;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Favor de ingresar su nombre: &amp;quot; );&lt;br /&gt;
  if( fgets( temp.Nombre, MAXNOMBRELEN - 2, stdin ) &amp;amp;&amp;amp;&lt;br /&gt;
             temp.Nombre[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    if( *(temp.Nombre + strlen( temp.Nombre ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;El Nombre que entraste es demasiado largo.\n&amp;quot;&lt;br /&gt;
              &amp;quot;Solo %d chars MAX\n&amp;quot;, MAXNOMBRELEN - 2 );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    *(temp.Nombre + strlen( temp.Nombre ) -1 ) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Falta su Nombre&amp;quot; );&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Favor de ingresar su apellido paterno: &amp;quot; );&lt;br /&gt;
  if( fgets( temp.Apellido, MAXNOMBRELEN - 2, stdin ) &amp;amp;&amp;amp;&lt;br /&gt;
             temp.Apellido[0] != &amp;#039;\n&amp;#039; )&lt;br /&gt;
  {&lt;br /&gt;
    if( *(temp.Apellido + strlen( temp.Apellido ) -1 ) != &amp;#039;\n&amp;#039; )&lt;br /&gt;
    {&lt;br /&gt;
      printf( &amp;quot;El apellido paterno que entraste es demasiado largo.\n&amp;quot;&lt;br /&gt;
              &amp;quot;Solo %d chars MAX\n&amp;quot;, MAXNOMBRELEN - 2 );&lt;br /&gt;
      exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    *(temp.Apellido + strlen( temp.Apellido ) -1 ) = &amp;#039;\0&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
    puts( &amp;quot;Falta su apellido paterno&amp;quot; );&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct NombreConteo mkInfo( struct NombreConteo info )&lt;br /&gt;
{&lt;br /&gt;
  info.Letras = strlen( info.Nombre ) +&lt;br /&gt;
                 strlen( info.Apellido );&lt;br /&gt;
  return info;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void DesplegaInfo( const struct NombreConteo info )&lt;br /&gt;
{&lt;br /&gt;
  printf( &amp;quot;%s %s, tu nombre contiene %d Letras.\n&amp;quot;,&lt;br /&gt;
               info.Nombre, info.Apellido, info.Letras );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[rrc@llawyr CClase]$ gcc -Wall -o Prog121 Prog121.c&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog121&lt;br /&gt;
Favor de ingresar su nombre: &lt;br /&gt;
Falta su Nombre&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog121&lt;br /&gt;
Favor de ingresar su nombre: RichardConMuchasLetras&lt;br /&gt;
El Nombre que entraste es demasiado largo.&lt;br /&gt;
Solo 18 chars MAX&lt;br /&gt;
[rrc@llawyr CClase]$ ./Prog121&lt;br /&gt;
Favor de ingresar su nombre: Richard&lt;br /&gt;
Favor de ingresar su apellido paterno: Couture&lt;br /&gt;
Richard Couture, tu nombre contiene 14 Letras.&lt;br /&gt;
[rrc@llawyr CClase]$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Explicación ===&lt;br /&gt;
 &lt;br /&gt;
[[Category:Programación en C]]&lt;br /&gt;
[[Category:CCabal]]&lt;br /&gt;
[[Category:CursoC]]&lt;/div&gt;</summary>
		<author><name>Perseuz</name></author>
		
	</entry>
</feed>