Idioma C: busque la palabra en inglés más larga y la misma en s1 y s2 de las dos cadenas de palabras en inglés dadas s1 y s2

Tarea 1: Completa el siguiente programa. La función max () encuentra las palabras más largas y las mismas en inglés en s1 y s2 de las dos cadenas de palabras en inglés dadas s1 y s2. El caso de la misma letra se considera como caracteres y palabras diferentes Todos están compuestos por letras en inglés y las palabras están separadas por uno o más caracteres en blanco.
#include <stdio.h>
#include <string.h>
char s1 [] = ”Esta es una prueba de programación de CA”;
char s2 [] = “Esta es una prueba de programación en C”;
max (char * s1, char
s2 )
{ } main () { clrscr (); // Borrar la función de pantalla max (s1, s2); }





*

Esta es una gran tarea que nos dio lpj en la clase de lenguaje C el semestre pasado. Parece simple pero tiene una cierta comprensión de matrices bidimensionales y punteros. El siguiente es mi código personal:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"fun.h"

void main()
{
    
    
	char s1[] = "Thisssssssss is C programming             textxxxxxxxxxxx";
	char s2[] = "Thisssssssss is a text for C programming  textxxxxxxxxxxx";
	max2(s1, s2);
	getchar(); getchar();
}

Lo anterior es la función principal.

#include<stdio.h>

void max2(char *s1, char *s2)
{
    
    
	int i, b, c = 0, z = 0, j = 0, m = 0, f = 0;
	char p[20][30] = {
    
     0 };       //p[m][j]---q[c][f]
	char q[20][30] = {
    
     0 };
	char answer[99] = {
    
     0 };
	for (i = 0; s1[i] != '\0'; i++)
	{
    
    
		if (s1[i] != ' ')
			p[m][j++] = s1[i];      //p[0][1]被s1的[i]赋值
		else
		{
    
    
			p[m][j] = '\0';
			m++;
			j = 0;  //s1切块
		}
	}
	for (i = 0; s2[i] != '\0'; i++)
	{
    
    
		if (s2[i] != ' ')
			q[c][f++] = s2[i];      //q[0][1]被s2的[i]赋值
		else
		{
    
    
			q[c][f] = '\0';
			c++;
			f = 0;  //s2切块
		}
	}
	for (i = 0; i < m + 1; i++)
	{
    
    
		for (b = 0; b < c + 1; b++)
		{
    
                                        //if (strstr(q[c], p[i]) != NULL) {
    
    
			if (strcmp(p[i], q[b]) == 0)         //if same
			{
    
    
				//if (strcmp(p[i], answer) > 0) 
				if (strlen(p[i]) > strlen(answer))
				{
    
                        //如果大的是p[i]  //p[i->m][j]--q[b->c][f]          
										  //for (k = 0; k < i; k++)
					strcpy(answer, p[i]);
					//answer[k] = p[k];	     //如果用strcpy(answer, p[i])会报错;
				}                             //把p[i]拷给answer	               
			}
		}
	}
	printf("the same word:");
	puts(answer);
}


Lo anterior es el archivo de encabezado

如果 运行 遇到 了
'strcpy': Esta función o variable puede no ser segura. Considere usar strcpy_s en su lugar. Para deshabilitar la obsolescencia, use _CRT_SECURE_NO_WARNINGS. Consulte la ayuda en línea para obtener más detalles.
请 参考 :
解决 'strcpy': Esta función o variable puede no ser segura.

Ejecutar resultados
resultado de la operación
Si te ayuda, dale me gusta.

Supongo que te gusta

Origin blog.csdn.net/NikoHsu/article/details/105791763
Recomendado
Clasificación