Aprendizaje de programación en C++


prefacio

Programación en C++ (Cuarta edición) Capítulo 5 Uso de matrices para procesar datos por lotes


5.5.6 Ejemplo de aplicación de matriz de caracteres

Ejemplo: Hay 3 nombres de países, y se requiere encontrar el primer país en orden alfabético. Requiere una llamada de función.

#include <iostream>
#include <string>

using namespace std;

int main() {
    
    
	void smallest_string(char str[][30], int i);
	int i;
	char country_name[3][30];
	for (i = 0; i < 3; i++)
		cin >> country_name[i];
	smallest_string(country_name, 3);
	return 3;
}

void smallest_string(char str[][30], int n) {
    
    
	int i;
	char string[30];
	strcpy_s(string, str[0]);
	for (i = 0; i < n; i++)
		if (strcmp(str[i], string) < 0)
			strcpy_s(string, str[i]);
			cout << endl << "The smallest string is:" << string << endl;
}

resultado de la operación

inserte la descripción de la imagen aquí

Posibles problemas

El código original usa strcpy en lugar de strcpy_s, y habrá advertencias como
'strcpy': esta función o variable puede no ser segura. Considere usar strcpy_s en su lugar. Para inhabilitar la obsolescencia, use _CRT_SECURE_NO_WARNINGS. Consulte la ayuda en línea para obtener más detalles
.
Estoy usando Visual Studio versión 2022.

Solución

  1. Busque [Propiedades del proyecto], haga clic en [Preprocesador] en [C++], edite [Preprocesador] y agregue un fragmento de código: _CRT_SECURE_NO_WARNINGS.inserte la descripción de la imagen aquí
  2. Reescriba strcpy a strcpy_s.

Este tipo de advertencia de Microsoft se debe principalmente a las funciones de la biblioteca C. Muchas funciones no realizan la detección de parámetros (incluidas las clases fuera de los límites). A Microsoft le preocupa que el uso de estas funciones provoque excepciones de memoria, por lo que reescribe el Funciones con la misma función La función de detección de parámetros, el uso de estas nuevas funciones será más seguro y conveniente.

Supongo que te gusta

Origin blog.csdn.net/qq_52992084/article/details/131157868
Recomendado
Clasificación