El especificador “typedef” en la pregunta se usa para convertir la variable “STRING” a tipo de carácter (de manera similar, “S” en la función “MIXITNOW”). Entonces, donde se use la palabra STRING, puede reemplazarla con char. Por lo tanto , en la función principal, la variable “Palabra” se inicializa como tipo de carácter. Ahora, la variable Palabra se envía como un parámetro a la función “MEZCLA”. La función strlen calcula la longitud de la cadena (CRACKAJACK) que es igual a 10 y lo asigna a “Tamaño” .Porque, el primer bucle for termina en i <tamaño-1 (es decir, 9), la operación del bucle for continuará hasta la letra C de CRACKAJACK. El primer bucle for se ejecutará durante 5 pases como sigue:
# 1 PASO (I = 0)
- Solo quedan 6 días para el examen CBSE de la clase de inglés 12, ¿qué extensión debo seguir?
- ¿Es muy difícil obtener un puntaje de 80% en la clase 12 de CBSE?
- Cómo obtener un puntaje de 100 en mi biología CBSE en la preparación de solo 1 mes
- Actualmente estoy en el décimo estándar. ¿Qué elegiré para mi carrera si soy bueno en matemáticas, dibujo y química, así como en física? ¿Qué rama elegiré después del 10º CBSE?
- ¿Qué plan de estudios es mejor, ICSE o CBSE?
EL CAMBIO DE LA PRIMERA Y SEGUNDA LETRA DE “CRACKAJACK” (es decir, C y R) TIENE LUGAR, DONDE WS ES SOLO UNA VARIABLE TEMPORAL.
- La letra C se asignará a WS como S [0] = ‘C’.
- La letra R se asignará a S [0] como S [1] = ‘R’.
La letra C se asignará a S [1] como WS = ‘C’.
Por lo tanto, el valor de la variable S después de la primera pasada será – RCACKAJACK
Similar,
# 2 PASS (I = 2)
EL CAMBIO DE TERCERA Y CUARTA CARTA DE “CRACKAJACK” (es decir, A y C) TIENE LUGAR.
Por lo tanto, el valor de la variable S después de la segunda pasada será – RCCAKAJACK
# 3 PASO (I = 4)
EL CAMBIO DE LA QUINTA Y SEXTA LETRA DE “CRACKAJACK” (es decir, K y A) TIENE LUGAR.
Por lo tanto, el valor de la variable S después de la tercera pasada será – RCCAAKJACK
# 4 PASO (I = 6)
El intercambio de la séptima y la octava letra de “CRACKAJACK” (es decir, J y A) se lleva a cabo.
Por lo tanto, el valor de la variable S después de la primera pasada será – RCCAAKAJCK
# 5 PASO (I = 8)
EL CAMBIO DE NOVENA Y DÉCIMA CARTA DE “CRACKAJACK” (es decir, C y K) TIENE LUGAR.
Por lo tanto, el valor final de la variable S después de la primera pasada será – RCCAAKAJKC
Ahora, ya que en el segundo bucle for, el valor no se inicializa nuevamente, sino que se hace referencia al bucle anterior, por lo tanto, el segundo bucle for comenzará su operación desde la segunda letra (S [1] = ‘C’) hasta la última letra ‘C’ para 5 pases. como sigue:
PASE # 1 (I = 1)
Verificará si el valor de S [I] (es decir, S [1] = ‘C’) es igual a ‘M’, ‘U’ o cualquiera de las letras entre ellos (es decir, N, O, P, Q, R, S, T) si es así, el valor en la posición ‘I’ se cambiará con el carácter ‘@’. Pero este no es el caso para S [1], por lo que permanece como ‘C’.
De manera similar, para otros #passes, es decir (I = 3,5,7 y 9) , vemos que ninguno de los caracteres sigue la condición requerida. Por lo tanto, sus valores permanecen como están.
Por lo tanto, el valor de la cadena ‘S’ permanece tal como está incluso después de aplicar el segundo bucle for y, dado que se pasó ‘S’ como parámetro en lugar de ‘Word’, vemos que la salida será la misma que el valor de ‘ S ‘.
SALIDA = RCCAAKAJKC
Recomiendo “Muévete rápido con C ++” de Sumita Arora para practicar más de estas preguntas.
Espero que hayas entendido el concepto. Feliz codificación. 🙂