Cómo dividir una cadena en caracteres de 2

Baja

Por ejemplo, Abraham Lincoln en AB, RA, HA ML, IN, CO, LN. Sin usar string.ho stdlib.h

#include <stdio.h>
int main ()
{
  printf("Enter the string: ");

  char inputstring[50];
  scanf("%[^\n]", inputstring);

  char *p = inputstring;
  char *k = inputstring;

  while (*p != '\0')
  {
    printf ("%c%c ", *p, *k);
    p++;
  }
  return 0;
}
Y

Según el enunciado del problema, es necesario:

  1. Cree una función similar a toUpper().
  2. Maneje solo caracteres que no sean espacios.
  3. Manejar caracteres impares que no sean espacios.
  4. Formateo, es decir, agregar ', 'solo para el primer par que no sea


A continuación se muestra la muestra de salida del siguiente código

Enter the string: abraham lincoln
AB, RA, HA, ML, IN, CO, LN
Enter the string: abcde fghijk
AB, CD, EF, GH, IJ, K

Código:

#include <stdio.h>

char myToUpper(char c) {
    if(c >= 97 && c <= 122) {
        c = c-32;
    } //end if
    return c;
}

int main(void) {
    printf("Enter the string: ");
    char inputstring[50] = {0};
    scanf("%[^\n]", inputstring);

    char *p = inputstring;
    int counter=0;
    char firstChar, secondChar;
    int isFirstPair = 1; //this is to handle the flag for first pair, used as the counter for comma character (only first pair do not need comma)
    while (*p != 0) {
        //this is to change between state (1st and 2nd character), need to exclude space
        if (*p != ' ') { //only process non-space character, you can add more character filtering if needed
            if (counter == 0) { //first char
                firstChar = *p;
                counter=1;
            } else  { //if we are on the 2nd character, then capitalize it and print it (along with the comma if needed)
                secondChar = *p;

                if (isFirstPair == 1) {
                    isFirstPair = 0;
                } else {
                    printf(", ");
                } //end else

                printf("%c%c", myToUpper(firstChar), myToUpper(secondChar));
                counter=0;
            } //end else
        } //end if
        p++;
    } //end while

    //this is to handle when there are odd number of non-space characters
    if (counter  == 1) {
        if (isFirstPair == 1) { //this is for the case where there is only 1 character input
            printf("%c", myToUpper(firstChar));
        } else {
            printf(", %c", myToUpper(firstChar));
        } //end else
    } //end if

    return 0;
}

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Cómo dividir una cadena de caracteres en un diccionario 2D

Dividir la cadena de cada 2 caracteres en una matriz

Dividir la cadena de cada 2 caracteres en una matriz

En Scratch, ¿cómo se puede dividir una cadena en una lista de caracteres?

Powershell - ¿Cómo dividir una cadena basada en caracteres?

Cómo dividir una cadena en números y caracteres

¿Cómo puedo dividir una cadena de JavaScript en oraciones de menos de 140 caracteres?

¿Cómo dividir una cadena en un delimitador de varios caracteres en bash?

¿Cómo dividir una cadena en filas por número de caracteres en Bigquery?

¿Cómo puedo dividir una cadena en segmentos de n caracteres?

¿Cómo dividir una cadena con caracteres de espacio en blanco al principio?

Cómo analizar una cadena con varios caracteres para dividir la secuencia de comandos en Bash

Cómo dividir una cadena en múltiples expresiones regulares manteniendo los caracteres de división

¿Cómo dividir una cadena por un patrón específico en número de caracteres?

¿Cómo contar caracteres en una cadena después de dividir la palabra?

Cómo dividir una cadena por conjuntos de caracteres que son diferentes en python

Javascript cómo dividir caracteres de cadena en variables

Javascript cómo dividir caracteres de cadena en variables

Dividir palabras en una cadena en listas anidadas de caracteres

Dividir la cadena en una matriz de caracteres individuales en jinja2

Dividir la cadena en una matriz de cadenas de caracteres

Dividir una cadena en todos los caracteres de 4 º?

¿Cómo eliminar caracteres después de 2 caracteres determinados en una cadena de Python?

Dividir una cadena por 4 caracteres en c ++

Cómo dividir una cadena en una corriente de Cuerdas?

Cómo dividir una cadena en una corriente de Cuerdas?

Cómo dividir una cadena de una lista en dart

Cómo dividir una cadena en una matriz de objetos

¿Cómo dividir "\ t" en una cadena en dos caracteres separados como "\" y "t"? (¿Cómo dividir la secuencia de escape?)