Ingresando una cadena con espacios en lenguaje C, ¿cómo separar la cadena según los espacios y almacenarla en una matriz?
El código fuente del programa es el siguiente:
#include
#include
int?main (void)
{
char str[1000];//definir una matriz de cadenas
char strnew[1000];//definir una matriz de cadenas alternativas
char m[]? =?" ??" ;//definir una variable de espacio
printf("Ingrese una cadena de caracteres:"); //solicitud de texto para cadena
gets(str);//cadena de entrada
char?*p?=?strtok(str,m);//tomar un puntero entre cadena y m
printf("%s\ n",p);?//Salida
p?=?strtok(NULL,m);?
while( p)?// Salida transversal
{ ?
printf("%s\n",p // Cadena de salida
p); ?= ?strtok(NULL,m); ?//Señalar el siguiente
}
}
Salida del programa:
C: in Introduzca una cadena en una matriz y elimine espacios.
#include
#include
#define N 100
void main() ?
{
int i=0,j;
char c,str[N];
printf("Cadena de entrada str:\n");
while((c=getchar())! = '\n')
{
str[i]= c;//cadena de entrada
i++;
}
str[i]='\0';?
for( i=0;cadena[i]! = '\0';i++)
{ si(cadena[i]==' ')
{
for(j=i+1;cadena[j]!= '\0';j++)
{
cadena[j-1]=cadena[j]; /p>
}
str[j]='\0';
}
si no, continuar;
}
str[i-2]='\0';
printf("La cadena después de eliminar espacios es:\n");
for(i=0; cadena[i]! = '\0';i++)
printf("%c",cadena[i]);
printf("\n"); p>
}