Compilerproblem



  • Hey Leute das heutige Problem hat eher weniger etwas direkt mit dem Inhalt eines Programms zu tun sondern mit einem Compilerproblem

    hier die Fehlermeldung des Compilers und leider weiß ich auch nicht welcher Compiler benutzt wird

    ld: fatal: symbol `main' is multiply-defined:
    	(file /var/tmp//ccegeyUY.o type=FUNC; file /var/tmp//ccYFqFqz.o type=FUNC);
    

    da mein compiler ( gcc ) nichts sagt steh ich grad wie der Ochs vorm berg und hab keine ahnung was genau ich jetzt falsch gemacht hab

    Dies ist die headerdatei

    nicht schön aber es tut was es soll 😉

    #ifndef strop3_h
    #define strop3_h
    
    /*	if |b1|+|b2| < bl1 
    		appends the character sequence stored in b2 to that contained in buffer b1
    		returns |b1|+|b2|
    	otherwise 
    		b1 remains unchanged 
    		returns -1
    */
    int concat(char *b1, int bl1, char *b2)
    {
    
     int i,lenb1,lenb2,a,laengeb1;
    
     lenb2=0;
    
     //länge b1 bestimmen
    
    lenb1=0;
    
    for(i=0; i < 5000; i++){
    			lenb1++;
    
    				if (b1[i] =='\0'){
    					i=5000;}
    
    			} 
    
    //länge b2 bestimmen
    bl1=10;
    
       for(i=0; i < 5000; i++){
    			lenb2++;
    
    				if (b2[i] == '\0'){
    					break;}
    
    			}
    
    a=0;
    
    // B2 in B1 schreiben
    
    laengeb1=(lenb1-1)+(lenb2-1);
    
    //printf ("\ndies ist die maximallaenge des ersten Feldes : %i\n", bl1);
    
    if (laengeb1<bl1)
    {
    
    printf ("\ndies ist die laenge von b1 : %i \n",laengeb1);
    
    for (i=lenb1-1 ; i<laengeb1 ; i++)
    {
    b1[i] = b2[a] ;
    a++;
    }
    
    }
    else
    {  
    printf ("\nZeichenkette zu lang");
    return -1;
    }
    return 0;
    }
    
    #endif
    

    und das dazugehörige hauptprogramm

    # include "stdio.h"
    # include "stdlib.h"
    # include <ctype.h>
    
    # include "strop3.h"
    
    int main()
    {
    int bl1,c,l2,i,d,o;
    bl1 = 5000;
    i = 0;
    l2=5000;
    char b1[bl1],b2[l2];
    
    bl1=100;
    printf ("Gib die erste Zeichenkette ein\n");
    
    // erste Zeichenkette
    for (i=0;i<5000;i++)
    {
    
    c = getchar();
    
    if (isspace(c) != 0 ){
    b1[i] = '\0';
    
    break;}
    
    b1[i] = c;
    }
    
    b1[i]='\0';
    
    // zweite Zeichenkette
    printf ("Gib die zweite Zeichenkette ein\n");
    
    for (o=0;o<5000;o++)
    {
    
    d = getchar();
    
    if (isspace(d) != 0 ){
    b2[o] = '\0';
    
    break;}
    
    b2[o] = d;
    }
    
    // Aufruf der Funktion
    concat (b1,bl1,b2);
    
    if (concat != 0);
    {
    printf("\nin b1 enthaltene Zeichenkette : %s \n", b1);
    }
    }
    


  • sieht nicht aus wie c#



  • auch das noch
    hast natürlich recht is einfaches C

    selber verschieben kann ichs wohl auch nicht ?

    bin grad verwirrt 😕



  • ince1 schrieb:

    auch das noch
    hast natürlich recht is einfaches C

    selber verschieben kann ichs wohl auch nicht ?

    bin grad verwirrt 😕

    Aber kannst schnell das Posting in die Zwischenablage nehmen und in ANSI-C posten.



  • Aber kannst schnell das Posting in die Zwischenablage nehmen und in ANSI-C posten.

    Bitte keine Doppelpost, ist böse... :xmas2:



  • Aber kannst schnell das Posting in die Zwischenablage nehmen und in ANSI-C posten.

    Bitte keine Doppelpost, ist böse... :xmas2:


Anmelden zum Antworten