<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><DIV>Holas !! </DIV>
<DIV> </DIV>
<DIV>tu error estriba en que estas queriendo obtener un tamanio de cadena de un pointer (nombres) el cual apunta a un arreglo NO a una cadena terminada en Null caracter '\0'.. luego entonces . como bien djio Joe usa tu variable "cantidadpersonas" el cual tiene el tamanio de tu arreglo de nombres.</DIV>
<DIV>Y recuerda strlen() es para cadenas que terminen en NULL pointer or '\0' :) recibe un saludo</DIV>
<DIV> </DIV>
<DIV align=left>
<DIV align=left><FONT face=com color=#0000ff><STRONG><EM>ATTE:<BR>ISC Edmundo Cuadriello Narvaez<BR>Software Engineer</EM></STRONG></FONT></DIV>
<DIV align=left><STRONG><EM><FONT color=#4040ff>C++, X++, C#, JAVA programmer.</FONT></EM></STRONG></DIV>
<DIV align=left><STRONG><EM><FONT color=#4040ff>Tel: 33-36899320</FONT></EM></STRONG></DIV>
<DIV align=left><STRONG><EM><FONT color=#4040ff>Cel: 33-13555312</FONT></EM></STRONG></DIV></DIV>
<DIV align=left>
<DIV align=left><FONT face=com color=#0000ff><STRONG><EM><A href="mailto:ecnarvaez@yahoo.com" target=_blank rel=nofollow>ecnarvaez@yahoo.com</A></EM></STRONG></FONT></DIV>
<DIV align=left><STRONG><EM><FONT color=#0000ff><A href="mailto:ecnarvaez@hotmail.com" target=_blank rel=nofollow>ecnarvaez@hotmail.com</A></FONT></EM></STRONG></DIV>
<DIV align=left><FONT face=com color=#0000ff><STRONG><EM>"All for Linux, and Linux for every one"</EM></STRONG></FONT></DIV></DIV><BR><BR>--- El <B>dom 8-nov-09, Joe Tend <I><neojtr@hotmail.com></I></B> escribió:<BR>
<BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: rgb(16,16,255) 2px solid"><BR>De:: Joe Tend <neojtr@hotmail.com><BR>Asunto: Re: [C con Clase] Funcion strlen me da error el printf<BR>A: "CconClase ListasDCorreo" <cconclase@listas.conclase.net><BR>Fecha: domingo 8 de noviembre de 2009, 9:27<BR><BR>
<DIV id=yiv2112606239>
<STYLE><!--
#yiv2112606239 .hmmessage P
{
margin:0px;padding:0px;}
#yiv2112606239 {
font-size:10pt;font-family:Verdana;}
--></STYLE>
En una matriz para saber cuantas posiciones has ocupado tendrías que usar un contador<BR>que aumentase al mismo tiempo que ingresas un dato, pero en tu caso ya tienes la cantidad<BR>precargada en "cantidadpersonas"<BR><BR>
<HR id=stopSpelling>
From: lau_gaby_costabel@hotmail.com<BR>To: cconclase@listas.conclase.net<BR>Date: Sun, 8 Nov 2009 01:23:56 +0200<BR>Subject: [C con Clase] Funcion strlen me da error el printf<BR><BR>
<STYLE>
#yiv2112606239 .ExternalClass .ecxhmmessage P
{padding:0px;}
#yiv2112606239 .ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Verdana;}
</STYLE>
Hola a todos:<BR>mire aqui les adjunto el programa q esta hecho con el dev c++, para q me puedan ayudar, hice tantas modificaciones, pero nada sigue saltando el mismo error. <BR> <BR>gracias<BR>atte:Laura Costabel<BR>lista con clase C<BR> <BR>#include<stdio.h><BR>#include<conio.c><BR>#include<string.h><BR>typedef char Cadena40 [40];<BR>Cadena40 nombres [100];<BR>    <BR>/* <BR> * comparar implementa comparacion de nombres<BR> */<BR>int comparar(int i, int j) {<BR>//     printf("%s - %s - %d \n", nombres[i], nombres[j], strcmp(nombres[i], nombres[j]));<BR>     return strcmp(nombres[i], nombres[j]);<BR>} // end comparar()<BR>/* <BR> * swap implementa el intercambio de valores<BR> */<BR>void swap(int i, int j) {<BR>     char aux[40];<BR>//     printf("%s - %s \n", nombres[i],
 nombres[j]);<BR>     strcpy(aux, nombres[i]);<BR>//     printf("Swap %s \n", aux);<BR>     strcpy(nombres[i], nombres[j]);<BR>     strcpy(nombres[j], aux);<BR>//     printf("%s - %s \n", nombres[i], nombres[j]);<BR>} // end swap()<BR>/* <BR> * ordenar implementa ordenamiento ascendente de nombres<BR> */<BR>void ordenar(int cantidadpersonas) {<BR>     for (int i = 0; i < cantidadpersonas - 1; i++) {<BR>         for(int j = i + 1; j < cantidadpersonas; j++) {<BR>  //               printf("%s - %s \n", nombres[i], nombres[j]);<BR>                 if(comparar(i, j) == 1)
 {<BR>                      swap(i, j);<BR>                 }<BR>         }<BR>     }<BR>} // end ordenar()<BR>/* <BR> * mostrar implementa mostrar los nombres<BR> */<BR>void mostrar(int cantidadpersonas) {<BR>     for (int i = 0;  i < cantidadpersonas; i++) {<BR>          printf("\n %d  %s ", i, nombres[i]);<BR>     }<BR>     printf("\n Oprima return para continuar ...");<BR>     getch();<BR>} // end mostrar()<BR>/*<BR> * main Rutina principal<BR> */<BR><BR>//* Comparamos para la longitud<BR>int comlen(int i, int j) {<BR>//     printf("%s
 - %s - %d \n", nombres[i], nombres[j], strcmp(nombres[i], nombres[j]));<BR>     int a = strlen (nombres [i]);<BR>     int b = strlen (nombres [j]);<BR>     int c;<BR>     if (a==b) c=0;<BR>        else if (a<b) c=-1;<BR>        else c=1;      <BR>     return c;<BR>} // end comparar()<BR>//* Ordenamos para la longitud<BR>void ordlen(int cantidadpersonas) {<BR>     for (int i = 0; i < cantidadpersonas - 1; i++) {<BR>         for(int j = i + 1; j < cantidadpersonas; j++) {<BR>  //               printf("%s - %s \n", nombres[i],
 nombres[j]);<BR>                 if(comlen(i, j) == 1) {<BR>                      swap(i, j);<BR>                 }<BR>         }<BR>     }<BR>} // end ordenar()<BR><BR>int main () {<BR>     int cantidadpersonas;<BR>     // Ingresar cantidad de personas<BR>     printf("\n Ingrese la cantidad de la lista de personas: ");<BR>     scanf("%d",&cantidadpersonas);<BR>     // Ingresar los nombres<BR>     for (int i = 0;  i < cantidadpersonas; i++) {<BR>         
 printf("\n Introducir el nombre %d : ", i);<BR>          scanf("%s", &nombres[i]);<BR>     }<BR>     // Mostrar nombres ingresados<BR>     mostrar(cantidadpersonas);<BR>     // Ordenar la lista de nombres<BR>     ordenar(cantidadpersonas);<BR>     // Mostrar lista ordenada<BR>     printf("\n\n LISTA ORDENADA ALFABETICAMENTE\n");<BR>     <BR>        <BR>     mostrar(cantidadpersonas);<BR>     printf("\n\n LISTA ORDENADA POR LONGITUD\n");<BR>     <FONT style="BACKGROUND-COLOR: rgb(255,255,0)">//*    printf("\n La longitud de\"%s\" es %d", nombres,strlen(nombres);// esto me da error no se porque</FONT><BR>    
 <BR>     ordlen(cantidadpersonas);<BR>     // Mostrar lista ordenada  <BR>     mostrar(cantidadpersonas);<BR>     return 0;<BR>} // end main()<BR><BR><BR>
<HR>
Guardá y compartí fotos, archivos, documentos y más. <A href="http://skydrive.live.com/" target=_blank rel=nofollow>¡Con Windows Live tienes 25 GB gratis! Probalo ahora.</A> <BR>
<HR>
Discover the new Windows Vista <A href="http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE" target=_blank rel=nofollow>Learn more!</A> </DIV><BR>-----Sigue archivo adjunto-----<BR><BR>
<DIV class=plainMail>_______________________________________________<BR>Lista de correo Cconclase <A href="http://mx.mc307.mail.yahoo.com/mc/compose?to=Cconclase@listas.conclase.net" ymailto="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</A><BR><A href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target=_blank>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</A><BR>Bajas: <A href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target=_blank>http://listas.conclase.net/index.php?gid=2&mnu=FAQ</A></DIV></BLOCKQUOTE></td></tr></table><br>



      <hr size=1><br><font face="Verdana" size="-2">¡Encuentra las mejores recetas<br>con Yahoo! Cocina!<br>
http://mx.mujer.yahoo.com/cocina/</font>