2017-04-05 3 views
0

Ich versuche, ein Sonderzeichen '-' in das Zeichenfeld einzufügen und möchte es in einer anderen Zeichenfolge speichern. Das einzufügende Zeichen wird mit einer Schleife erstellt.Zeichen einfügen in Zeichen-Array C

INPUT:

actgagc

atgac

OUTPUT

actgagc

A-tga-c

Im zweiten Zeichenfeld - wird anstelle der fehlenden Zeichen eingefügt.

Das Programm wird in der JAVA mit der einfachen String-Verkettungsfunktion ausgeführt, kann aber die Zeicheneinfügung für C Language nicht ausführen.

Der Java-Code ist:

while (k > 0 && l > 0) { 
      if (condition 1) { 
       r_string1 += string_1[k - 1]; 
       r_string2 += string_2[l - 1]; 
       k--; 
       l--; 
      } else if (condition) { 
       r_string1 += "-"; 
       r_string2 += string_2[l - 1]; 
       l--; 
      } else { 
       r_string1 += sring_1[k - 1]; 
       r_string2 += "-"; 
       k--; 
      } 
     } 

In der Sprache C Ich versuche, das gleiche gilt für die Zeicheneinfügung in dem Zeichenfeld zu tun. Versucht mit der Funktion strcat, memmov, aber es werden keine Ergebnisse erzielt.

+6

SO ist kein muskelbetriebenes Transpiler Service. Zeig uns, was du bisher in C versucht hast. Im Moment haben Sie einen Java-Pseudo-Code, aber Sie zeigen uns nicht, was Sie versucht haben, in C dasselbe zu erreichen. Lesen Sie den Hilfe-Abschnitt, der eine _ "gute Frage" _ macht –

Antwort

0

Sie brauchen Platz für die neue Zeichenfolge zuweisen, so vergessen Sie nicht, es zu befreien ...

char * f(char *s1, char * s2) 
{ 
    char *s3 = malloc(strlen(s2)+1); 
    char *ret = s3; 

    while (*s2) 
    { 
     if (*s1++ == *s2) 
      *s3 = *s2++; 
     else 
      *s3 = '-'; 
     s3++; 
    } 
    *s3 = '\0'; 
    return ret; 
} 
Verwandte Themen