Ingrese una cadena y copie todos los caracteres que comiencen con el carácter m-ésimo a otra cadena.
El procedimiento correcto es el siguiente:
#define N 20//Definición de macro: define la longitud del array
#include
Utilice el espacio de nombres std;
int main()
{int m, i;//Defina las coordenadas iniciales y especifique la variable de bucle char a[N], b[ para copiar elementos N];//Defina dos matrices de la misma longitud cout << "Por favor ingrese cadena:"; gets_s(a);//siga la sugerencia: utilice la función de entrada de caracteres para realizar la entrada de cadenas y guardar en una matriz cout << "Por favor ingrese m:"; cin >> m;//Siga la sugerencia: ingrese las coordenadas del inicio del elemento de copia especificado para (i = 0; b[i - 1] != '\0' ; i++) //El recorrido comienza desde el elemento especificado y se detiene al final de la cadena { b[i] = a[i + m -1 ] //Copiar secuencialmente a la matriz b comenzando desde el elemento m de a; array } cout << "La cadena después del mes es:" << b << endl // Muestra el contenido de la matriz b (es decir, el resultado) devuelve 0, resultado) devuelve 0;
}
El resultado es el siguiente:
Información ampliada:
//El método de puntero completa la copia de la cadena
#include
void copy_string(char *from,char *to);?//declaración de función
void main()
{ ?
char *fro,*t; //Definir dos variables de puntero
char a[]="Soy profesor.";//Definir dos matrices de cadenas
char b[]="Eres un estudiante.
";
printf("a=%s\nb=%s\n",a,b);//Muestra el contenido de dos matrices a, b
fro= a;t=b;//Asigne la dirección inicial de la matriz a y asigne la dirección inicial de la matriz b a t
printf("\ncopiar la cadena a a la cadena b:\n ");
copy_string(fro,t);//Función utilizada para COPIAR (aquí no se requiere el símbolo de puntero *, la dirección se transfiere directamente)
printf("string a =%s\ nstring b=%s\n",a,b);
}
void copy_string(char* de,char* a)
{ ?
while(*from!='\0')//continuar si la matriz no está terminada
{
*to=*from; //copia del elemento de matriz
from++;to++;//apunta a la dirección del siguiente elemento de matriz
}
*to='\0'; //el último carácter de la cadena es \0
}