Hablando de la realización de atoi ()

atoi ()

  1. Función: cadena a número

  2. Implementación de funciones

     #include <stdio.h>
     #include <stdbool.h>
    
     int atoi(const char* str)
     {
     	int s = 0;
     	bool flag = false;
    
     	while (*str == ' ')
     	{
     		str++;
     	}
    
     	if (*str == '+' || *str == '-')
     	{
     		if (*str == '-')
     		{
     			flag = true;
     		}
     		str++;
     	}
     	else if (*str < '0' || *str > '9')
     	{
     		s = 216483548;
     		return s;
     	}
    
     	while (*str != '\0' && *str >= '0' && *str <= '9')
     	{
     		s = s * 10 + (*str - '0');
     		str++;
     	}
     	if (flag)
     	{
     		s = s * -1;
     	}
    
     	return s;
     }
    
     int main()
     {
     	char a[] = { "12345" };
     	int b = atoi(a);
     	printf("%s\n", a);
     	printf("%d\n", b);
     	return 0;
     }
    

Análisis de código:
  debido a que la función de la función es convertir una cadena en un número, el valor de retorno es de tipo int, y el parámetro pasado es una cadena que no necesita ser modificada. Puede haber espacios delante de la cadena , así que primero avance el subíndice de cadena a La primera cadena excepto el espacio, el número tiene números positivos y negativos, así que establezca una marca de referencia, si hay un signo negativo, se multiplicará por -1 cuando la función regrese, la cadena se convierte a un número, y el valor ascll se usa para la diferencia Calculado, no calculó que se multiplica por 10 en un solo lugar.

Supongo que te gusta

Origin blog.csdn.net/weixin_43580319/article/details/113061569
Recomendado
Clasificación