[RISOLTO]esercizio su stringhe [C]

di il
5 risposte

[RISOLTO]esercizio su stringhe [C]

Ho un problema con questo esercizio:

implementare la funzione "char* mystrcat(char *s1, char *s2)" che aggiunge la stringa s2 al termine di s1, sovrascrivendo il terminatore '/0' al termine di s1 ed aggiungendolo al termine della nuova stringa presente in s1 dopo la concatenazione. La funzione restituisce un puntatore ad s1. La funzione assume che in s1 vi sia spazio per contenere s2 (ed è compito del chiamante assicurarsi che cio sia vero). Tale comportamento di mystrcat() è uguale a quello della funzione strcat() presente nella libreria string. Scrivere poi un programma che legga due stringhe da tastiera e stampila stringa ottenuta concatenandole tramite mystrcat(). Si puo assumere che le stringhe in input contengano non piu di 1000 caratteri.

Io ho fatto questo:
#include <stdio.h>
#include <string.h>
char* mystrcat(char *s1, char *s2);
    char *strcat(s1,s2);
    printf ("%s",s1);
}
int main (){
	char s1[1000];
	char s2[1000];
	scanf ("%s",s1);
	scanf ("%s",s2);
	int ln1=strlen(s1);
	int ln2=strlen(s2);
	if (ln1+ln2<=1000) {
		mystrcat(s1,s2);
	}
return 0;
}
mi da errore alla seconda riga del "mystrcat" = error: conflicting types of "strcat"

non me la spiego già che non è il primo eserczio dove uso questa variabile...

aspetto vostre notizie grazie in anticipo

5 Risposte

  • Re: [RISOLTO]esercizio su stringhe [C]

    Questo

    char *s1[1000];

    cosa è secondo te?
  • Re: [RISOLTO]esercizio su stringhe [C]

    No scusa niente 'ho già modificato errore mio nel copia e incolla ...al'inizio l'avevo preso come puntatore...ma non è quello l'errore perchè anche compilandolo così mi da lo stesso errore
  • Re: [RISOLTO]esercizio su stringhe [C]

    Ma scusa, come è scritta la funzione?

    char* mystrcat(char *s1, char *s2);
    char *strcat(s1,s2);
    printf ("%s",s1);
    }

    1) il ; alla fine a che serve nella prima riga?
    2) la parentesi { di apertura dove sta?
    3) perché hai scritto in quel modo la seconda riga?
    4) dove restituisce il valore la tua funzione?
  • Re: [RISOLTO]esercizio su stringhe [C]

    L'errore del "char *strcat(s1,s2)" è sempre per il copia e incolla...il vero problema (molto più che stupido) era nel fatto che non avevo messo la parentesi di apertura della funzione ahahaha grazie mille
  • Re: [RISOLTO]esercizio su stringhe [C]

    Guarda che devi anche restituire un valore se la tua funzione lo prevede ...
Devi accedere o registrarti per scrivere nel forum
5 risposte