separar una cedena

Kzmc
19 de Noviembre del 2003
hola, soy nuevo en c...
y queria saber que función (con su respectiva libreria) sirve para separar una cadena de caracteres, por ejemplo para saber el nombre de una persona teniendo su nombre y dos apellidos en una sola variable, ejemplo:
nombre = "josé joaquin silva";
y que me devuelva solo el nombre.

en php es la función explode() pero no me sirve, osea me hace error en c....

ojala me respondan
adios y gracias

Kzmc
19 de Noviembre del 2003
gracias MariGuanO!
nunca se me ocurrio hacer eso....
thankx bye

MariGuanO
19 de Noviembre del 2003
pues jeje... no quieras poner las funciones de un leguaje en otro... bueno.
una funcion en c asi especifica no hay (al menos yo nunca la eh visto) pero si tu en una cadena de caracteres tienes el nombre completo y solamente quieres obtener el nombre haces un ciclo y listo, mira:

cadena[50]="josé joaquin silva";
cadena_destino[20];
for(int i=0; cadena[i]!=' '; i++)
{
cadena_destino[i]=cadena[i];
}
cadena_destino[i]='';

primero tienes las dos variables, despues haces un ciclo de ir aumentado la i hasta que la cadena en el arreglo i sea diferente del caracter de espacio y asi se ira copiando caracter a caracter y cuando se salga del ciclo ya tienes el nombre en otra variable y solo le pones el caracter de terminacion y listo...

MariGuanO
19 de Noviembre del 2003
Ah se me fe decirte que si lo unico que quieres es que en la variable del nombre completo solo aparesca el puro nombre, pues de igual manera haces el ciclo:

cadena="josé joaquin silva";
for(int i=0; cadena[i]=' '; i++);
cadena[i]='';
haces el ciclo para buscar en que lugar del arreglo esta el primer espacio y ahi pones el caracter de terminacion de una cadena y listo... y a la otra cuando quieras usar la cadena solamente te saldra el nombre.