C-Problem

Das Forum fĂĽr Programmierer und Systemadmins. Von Shell-, Perl- und PHP-Scripts bis zur objektorientierten Programmierung mit C++.

C-Problem

Beitragvon Lebkuchenmann » Do 03 Mär, 2005 20:34

Hi Leute!

Kann mir bitte jemand helfen! Mein Prog läuft zwa aber ist net richtig!
Ausgabe immer : Mögliche Verschlüsselung!

Hier der Source Code:

#include <stdio.h>
#include <conio.h>
#include <string.h>

void main()
{
bool g=true;
char text1[100];
char text2[100];
int c,d,a,b,e;
printf("g´Geben sie einen Text ein!");
scanf("%s",&text1);
printf("Geben sie einen Text ein!");
scanf("%s",&text1);
c=strlen(text1);
d=strlen(text2);

if(c=d)
{
for(int x=0;x<c && g;x++)
{
a=text1[x];
b=text2[x];
for(e=x+1;e<c && g;e++)
{

if(a=text1[e])
{
if(b!= text1[e])
{
g=false;
}
}
}
}
}
if(g=true)
{
printf("Die Texte könnten gleich sein!");
}
if(g=false)
{
printf("Die texte könnten nicht gleich sein!");
}

getch();
}

Danke im Voraus !
Wäre dringend bis morgen !
Also bitte !!!
Lebkuchenmann
Neu im Board
Neu im Board
 
Beiträge: 2
Registriert: Do 03 Mär, 2005 20:29

Beitragvon roro » Do 03 Mär, 2005 20:40

Lebkuchenmann hat geschrieben:
printf("g´Geben sie einen Text ein!");
scanf("%s",&text1);
printf("Geben sie einen Text ein!");
scanf("%s",&text1);



printf("g´Geben sie einen Text ein!");
scanf("%s",text1);
printf("Geben sie einen Text ein!");
scanf("%s",text2);

Aber ganz klar ist mir nicht, was das Programm machen soll.
roro
Advanced Profi-User
Advanced Profi-User
 
Beiträge: 2347
Registriert: Di 11 Jan, 2005 15:22
Wohnort: Weiz

Beitragvon kirschi » Do 03 Mär, 2005 21:40

Versteh den Sinn dahinter auch net ganz...
Was wichtig ist: if(c == d)
In einer if Abfrage schreibst du einen Vergleich rein!! Also doppeltes "==", ansonsten isses eine Zuweisung!!
Dass des ĂĽberhaupt compiled hat... *g*
Und "Mögliche Verschlüsselung" kann des Programm garnet ausgeben, weil des nirgends im Source steht?!?
Noch dazu is des ein C++ - Problem, in C gibts kein "bool"
http://cppreference.com/data_types.html
Wenn das ein String-Vergleicher werden sollte...
in C++
Code: Alles auswählen
if(strcmp(text1,text2)==0)
{
  cout<<"IDENT"<<endl;
}
else
  cout<<"NOT IDENT"<<endl;

oder ĂĽber eine Schleife:
Code: Alles auswählen
if(strlen(text1) == strlen(text2))
{
  for(int i = 0; i < strlen(text1); i++)
  {
    if(text1[i] != text2[i])
    {
      ident = 0;
      break;
    }
  }
}
else
  ident = 0;
if(ident)
  printf("Strings match!");
else
  printf("Strings don't match!");
Woher soll ich wissen was ich denke, bevor ich höre, was ich sage?
Bild
kirschi
Board-Mitglied
Board-Mitglied
 
Beiträge: 129
Registriert: Fr 11 Jul, 2003 14:45
Wohnort: Graz

Beitragvon radditz » Sa 05 Mär, 2005 22:13

Hi.
1.
scanf("%s",&text1);

text1 ist ein String, besser gesagt: ein Array of Characters.
Bei Arrays ĂĽbergibt man nicht &variable, sondern nur variable.
d.h. richtig sieht es so aus:
scanf("%s", text1);

2.: Du liest 2 mal in text1 ein, das bringt ja dann nix ;)
einmal musst du in text1 einlesen, und einmal in text2

3.: anders als bei manch anderen Programmiersprachen, is (c=d) keine gĂĽltige Vergleichsoperation. Ein einzelnes = bedeutet zuweisen, ein doppeltes = (also ein ==) bedeutet Vergleichen.

4.: Strings vergleichen
das funktioniert so nicht. Das sind eigentlich 2 Arrays, die du vergleichen möchtest.
In einigen anderen Programmiersprachen gibt es den Datentyp String. In C selbst gibt es diesen Datentyp nicht.

5.: bool
Den Datentyp bool gibt es in C nicht, dieser ist erst ab C++ verfĂĽgbar.
Wenn du wirklich C programmieren willst, empfehle ich dir den Dev-Cpp.
Allerdings kannst du mir glauben, bringt dir C++ doch einige Vorteile, vor allem: Du kannst in C++ genauso C Funktionen verwenden.

6.: so gehts richtig

#include <stdio.h>
#include <conio.h>
#include <strings.h>

void main()
{
char text1[100];
char text2[100];

printf("Bitte gib was ein: ");
scanf("%s", text1);
printf("Gib bitte noch was ein: ");
scanf("%s", text2);

if (strcmp(text1, text2) == 0)
{
printf("Die beiden Strings sind gleich");
}
else
{
printf("Die Strings sind unterschiedilch");
}

}
Telematica DSL Solo Pro 30 Mbit/s
Vorher: A1 VDSL 16 Mbit/s
radditz
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4399
Registriert: Mo 23 Jun, 2003 16:50

Beitragvon Lebkuchenmann » So 06 Mär, 2005 18:51

Danke an alle die sich gedanken ĂĽber mein Programm gemacht haben!
Haben 2 Programme Programmieren mĂĽssen Hangman und noch ein kleines ! Mir war Hangman wichtiger also hab ich Hangman mit (Grafik ) gemacht! Hab dann keine Zeit mehr fĂĽr TextverschlĂĽsselung gehabt und so hab ich nur einen "guten Pseudocode" geschrieben ! Dachte mir das ich aber einige Fehler in meinen Algo hatte und so posted ich in!
Danke nochmals ! :ok: ^^
PS: Habe mich verschrieben hätten noch eine Woche Zeit gehabt! sry :oops:
Lebkuchenmann
Neu im Board
Neu im Board
 
Beiträge: 2
Registriert: Do 03 Mär, 2005 20:29


ZurĂĽck zu PROGRAMMIER FORUM

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 22 Gäste