Vergleichen von zwei Strings, und entfernen Sie gemeinsame Buchstaben
Ich habe ein problem mit einer übung, also hier ist die übung:
Ein Programm schreiben, dass aids mit den entsprechenden Nachrichten auf dem Bildschirm zu Lesen Sie zwei Zeichenketten
str1
undstr2
auch die wird gegeben werden, von der Tastatur, und klicken Sie dann löschen Sie alle Buchstaben in der variablestr1
, die auch in der variablestr2
. Das display zeigt das Letzte Ergebnis bei der überprüfung der korrekten Bedienung des Programms.
Und hier ist was ich bisher getan habe (ich kann nur mit diesen Bibliotheken):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str1[80], str2[80];
int megethos1, megethos2,max,i,j;
printf ("Give the first string: ");
scanf ("%s", &str1);
printf ("Give the second string: ");
scanf ("%s", &str2);
size1= strlen(str1);
size2= strlen(str2);
for (j=0; j<=megethos2; j++){
for (i=0; i<=megethos1; i++){
if (str2[(strlen(str2)-j)]=str1[(strlen(str1)-i)])
str1[(strlen(str1)-i)]=' ';
}
}
printf (str1);
system("pause");
}
Also wer kann mir helfen?
- Ist es ein problem mit dem, was Sie codiert haben so weit? Tut es nicht funktioniert? Welches Verhalten haben Sie?
- Sie sind mit c, nicht c#.
- Auch tags gehören nicht in den Titel, und "ich" wird mit einem Großbuchstaben geschrieben.
- Ich sehe, Sie haben gelernt, über strlen. Es gibt viele andere string-handling-Funktion in der standard-Bibliothek - in allem, empfehle ich, Sie liest die docs für strpbrk, strspn, strcspn, und strchr. Während du da drin bist, scout um für andere interessante Funktionen, die Ihnen helfen können, mit späteren Zuordnungen. Viel Glück.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn
i
ist0
dannstr2[(strlen(str1)]
ist das abschließende null-Zeichen des Strings, den Sie überschreiben mit' '
. Sie brauchen eine- 1
irgendwo.Als @PaulR angemerkt in den Kommentaren, der erste
=
sollte ein==
.Beachten Sie auch, dass Sie verwenden müssen
scanf("%s", str)
und nichtscanf("%s", &str)
.=
muss wohl ein==
?Ist Ihre Frage zu C oder C#?
Für C# können Sie mit LINQ:
new string(s1.Except(s2).ToArray())
(das ist schon ziemlich ineffizient). Schauen string builder, wenn Sie wollte etwas ein bisschen effizienter