Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

C Programm
Gehe zu Seite 1, 2  Weiter
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> C Programm
 
Autor Nachricht
K.Andreas
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 11.03.2009
Beiträge: 19

BeitragVerfasst am: 13 Okt 2009 - 08:48:57    Titel: C Programm

Hallo, ich bin ein C Anfänger und habe folgendes Problem. Ich muss die untere Funktion in C umschreiben.

Scanner scan = new Scanner(System.in);
String text = scan.next();

char textAsChar//textAsCharArray = text.toChar//text.toCharArray();
int textAsIntArray = new int[textAsCharArray.length];

for(int i=0;i<textAsCharArray.length;++i){
textAsIntArray[i] = textAsCharArray[i]-'a';
}

es geht mir dabei nicht um die arrays, ich bräuchte nur hilfe wie ich buchstaben eingebe und sie dann als zahlen ausgeben bzw. speichern kann. Es soll mit der 0 anfangen, also A/a ist 0 und Z/z 25.

Wie kann ich das untere Programm erweitern das es das macht was es soll Sad ???

#include <stdio.h>

int main(void)
{

char buchstabe[5];

printf("Eingabe: ");
scanf("s");

return 0;
}



Vielen Dank im vorraus
sarc
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 21.09.2006
Beiträge: 2657

BeitragVerfasst am: 13 Okt 2009 - 13:36:32    Titel:

http://www.cplusplus.com/reference/clibrary/cstdio/scanf/

Stör dich nicht dran, dass das ne C++ - Seite ist, die Funktion ist aus der C-Bibliothek. Auf der Seite steht beschrieben, wie du damit ein einzelnes Char einliest.

Für die Ausgabe als Zahlen musst du dir was einfallen lassen. Für die Umwandlung könntest du sie einfach zu ints casten, dann hat jeder Buchstabe seinen ASCII-Code als Zahl. Allerdings unterscheidet das zwischen A und a, und es fängt auch nicht bei 0 an. Aber ich denke, damit bist du schon mal etwas weiter und kannst dann gucken, wie du die letzten Probleme löst.
K.Andreas
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 11.03.2009
Beiträge: 19

BeitragVerfasst am: 13 Okt 2009 - 17:00:33    Titel:

Danke sehr sarc, bin ein stück weiter. Weißt du vllt wie ich es in buchstaben umwandeln kann ?


Code:

#include <stdio.h>

int main()
{
  char string [3];
  printf ("Eingabe: \n ");
  gets (string);
  printf ("Deine Eingabe lautet: %s\n",string);


  return 0;
}


sarc
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 21.09.2006
Beiträge: 2657

BeitragVerfasst am: 13 Okt 2009 - 18:41:01    Titel:

Was willst du in Buchstaben umwandeln?
K.Andreas
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 11.03.2009
Beiträge: 19

BeitragVerfasst am: 13 Okt 2009 - 19:33:26    Titel:

sorry, ich meinte zahlen!
sarc
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 21.09.2006
Beiträge: 2657

BeitragVerfasst am: 13 Okt 2009 - 19:50:10    Titel:

Zitat:
Für die Umwandlung könntest du sie einfach zu ints casten, dann hat jeder Buchstabe seinen ASCII-Code als Zahl. Allerdings unterscheidet das zwischen A und a, und es fängt auch nicht bei 0 an. Aber ich denke, damit bist du schon mal etwas weiter und kannst dann gucken, wie du die letzten Probleme löst.
K.Andreas
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 11.03.2009
Beiträge: 19

BeitragVerfasst am: 13 Okt 2009 - 20:03:54    Titel:

So wird mir was falsches angezeigt, der code hier ist nicht ganz richtig:
Code:
 int myint = Integer.parse (string);



Code:

#include <stdio.h>

int main()
{
  char string [3];
  printf ("Eingabe: \n ");
  gets (string);
  printf ("Deine Eingabe lautet: %s\n",string);


int myint = Integer.parse (string);

  return 0;
}
[/code]
quatsch
Moderator
Benutzer-Profile anzeigen
Moderator


Anmeldungsdatum: 31.08.2005
Beiträge: 3496

BeitragVerfasst am: 13 Okt 2009 - 20:09:35    Titel:

Das kann nicht gehen, dazu muss der String eine gültige Zahl enthalten, also "123" oder "4711". Wie vorgeschlagen, kannst Du über den ASCII-Wert gehen. Ander möglichkeit wäre eine längliches if-else oder switch.
K.Andreas
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 11.03.2009
Beiträge: 19

BeitragVerfasst am: 13 Okt 2009 - 20:18:28    Titel:

naja,wird aber ein langes if Wink WIeso geht es so einfach in Java und in C nicht Sad trotzdem danke
ichbinsisyphos
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 31.05.2007
Beiträge: 1700

BeitragVerfasst am: 13 Okt 2009 - 20:33:35    Titel:

Du kannst einen char einfach in ein int casten.

char a = 'a';
int ascii_a = (int)a;

Dann noch einen konstanten Wert abziehen.

Du kannst auch noch abfragen, ob es ein Großbuchstabe (65+?) oder Kleinbuchstabe (97+?) ist und entsprechend beide berücksichtigen.
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> C Programm
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum