[Lenguaje C] getchar() y scanf(), EOF, realizan la conversión de letras en mayúsculas y minúsculas. Múltiples conjuntos de entrada y salida

Implemente la conversión de letras a mayúsculas y minúsculas. Múltiples conjuntos de entrada y salida

ejemplo

un
b
un
b

Tabla de contenido

obtener char() 

escanear()

fin de semana 

obtener char() 

#include<stdio.h>
int main() 
{

    int ch = 0;
    while (ch = getchar()) 
    {
        putchar(ch+32);
    }
    return 0;
}

Porque 

Desde el teclado, escriba A e ingrese (\n) al búfer, getchar primero toma A del búfer (A+32 corresponde a a en la tabla ASCII), y toma \n del búfer (\n+ 32 corresponde a * ) en la tabla ASCII

Entonces la salida es: a*

Solución:

Usa otro getchar() para leer el retorno de carro

int main() 
{
    int ch = 0;
    // EOF: end of file 
    //想让循环停止:Ctrl+Z
    while ((ch = getchar()) != EOF)
    {
        putchar(ch+32);
        getchar();//用来读取\n
        printf("\n"); //换行
    }
    return 0;
}

 Mejorar

#include<stdio.h>
int main()
{
    int ch = 0;
    while ((ch = getchar()) != EOF)
    {
        printf("%c\n",ch+32);
        getchar();//用来读取\n   
    }
    return 0;
}

escanear()

#include <stdio.h>

int main() {
    char ch = 0;
    while(scanf("%c ",&ch) != EOF)
    {
        printf("%c\n",ch+32);
    }
    return 0;
}

Con respecto a ~scanf() para múltiples conjuntos de entrada en un ciclo while

 

#include <stdio.h>

int main() {
    char ch = 0;
    while(~scanf("%c ",&ch))
    {
        printf("%c\n",ch+32);
    }
    return 0;
}

fin de semana 

EOF va a la definición en lenguaje C y su valor es (-1), fin de archivo, el final del archivo.

EOF es devuelto por una rutina de E/S cuando se encuentra el final del archivo (o en algunos casos, un error).

Significado: cuando se encuentra el final del archivo (o, en algunos casos, un error), el proceso de E/S devuelve EOF.

Al realizar múltiples conjuntos de entrada en el terminal, presione Ctrl+Z para detener la entrada.

  • ~ Este es un operador de lenguaje c, negación bit a bit.

 

Tanto while(scanf("%c",&ch) != EOF) como while(~scanf("%c",&ch)) pueden realizar múltiples conjuntos de entrada y salida.

Supongo que te gusta

Origin blog.csdn.net/qq_72505850/article/details/131521920
Recomendado
Clasificación