"We are back" « oc.at

chr() in C?

MarS919 08.02.2002 - 11:54 1488 19
Posts

MarS919

Little Overclocker
Avatar
Registered: Oct 2001
Location: Wr. Neustadt
Posts: 120
Ich bin gerade dabei, eine Aufgabe in C (für die Schule) zu schreiben.

Zwei Fragen:
1. Wie kann ich eine int-Variable (die einen ASCII-Wert enthält) im Programm selbst in ein Zeichen umwandeln?

2. Gibt es denn keine Funktion, mit der ich von einem String n Zeichen ab der Position p lesen kann?

Ich möchte in einer for-Schleife einen String Zeichen für Zeichen durchgehen, und dann überprüfen, ob dieses Zeichen druckbar ist (mit isprint()).

:rolleyes:

Murph

Nerd
Avatar
Registered: Dec 2001
Location: Vienna
Posts: 9236
zu 2)

substr(p,n);

JC

Vereinsmitglied
Disruptor
Avatar
Registered: Feb 2001
Location: Katratzi
Posts: 9066
ad 1) gabs da nicht so 'ne funktion namens ... itoa(n)? :confused:

c ist schon ein bisserl länger her :rolleyes:

MarS919

Little Overclocker
Avatar
Registered: Oct 2001
Location: Wr. Neustadt
Posts: 120
Zitat von ][Murph][
zu 2)

substr(p,n);

Diese Funktion gibt's offensichtlich nur in PHP und PERL. :(

JC

Vereinsmitglied
Disruptor
Avatar
Registered: Feb 2001
Location: Katratzi
Posts: 9066
Zitat von MarS919
Diese Funktion gibt's offensichtlich nur in PHP und PERL. :(
und JavaScript ;)

MarS919

Little Overclocker
Avatar
Registered: Oct 2001
Location: Wr. Neustadt
Posts: 120
irgendwie ist ein string ja ein array, darauf kann man bekanntlich mit einem Index zugreifen. Kleine Hirnblokade meinerseits ... :D

manalishi

tl;dr
Avatar
Registered: Feb 2001
Location: Feldkirch
Posts: 5977
zu 1)
wieso willst das umwandeln? wennst an int wert mit %c ausgibst, wird der enthaltene wert sowieso als ascii interpretiert.
wenn du keine funktion findest, kannst du ja (char) intvariable; machen aber ich sag nur dass das genau nix tut ;)

MarS919

Little Overclocker
Avatar
Registered: Oct 2001
Location: Wr. Neustadt
Posts: 120
Ich wills ja nicht ausgeben, ich will es im Programm selbst verwenden. Da ändert auch (char)i nix. :)

Murph

Nerd
Avatar
Registered: Dec 2001
Location: Vienna
Posts: 9236
Zitat von JC
und JavaScript ;)

und c++

dachte das das ding in C auch scho geben hat...

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
Zitat von manalishi
zu 1)
wieso willst das umwandeln? wennst an int wert mit %c ausgibst, wird der enthaltene wert sowieso als ascii interpretiert.
wenn du keine funktion findest, kannst du ja (char) intvariable; machen aber ich sag nur dass das genau nix tut ;)

Ich denk er will wenn er 48 hat auch "48" Ausgeben :)

mit itoa geht des!

manalishi

tl;dr
Avatar
Registered: Feb 2001
Location: Feldkirch
Posts: 5977
aha?

Code:
char hallo = 48;

printf("%i",hallo);

gibt wohl auch die zahl 48 am schirm aus....

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
Zitat von manalishi
aha?

Code:
char hallo = 48;

printf("%i",hallo);

gibt wohl auch die zahl 48 am schirm aus....

Er hat des meines erachten nach aber so:

Code:
char *einString = "1234";

und da geht dann nix mehr mit printf! Eine Zahl die als Zahl vorliegt auszugeben is keine Kunst, aber er will nen String in ne Zahl umwandeln :)

Denk ich halt mal!

MarS919

Little Overclocker
Avatar
Registered: Oct 2001
Location: Wr. Neustadt
Posts: 120
Die Funktion soll zurückgeben, ob sich in einem String auch wirklich nur druckbare Zeichen befinden. Das funzt jetzt so:

Code: PHP
int checkstring(char *string)
{
	int j=0;
	
	for(j=0; j < strlen(string); j++)
	{
		if(!isprint(string[j]))
			return 0;
	}
	return 1;
}

Das umgeht meine Probleme (erstes Posting); deswegen sind sie aber noch immer noch nicht gelöst. :D

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11342
Was genau willst jetzt noch machen?

MarS919

Little Overclocker
Avatar
Registered: Oct 2001
Location: Wr. Neustadt
Posts: 120
Also: Ich prüfe mit dieser Funktion, ob alle eingegebenen Zeichen druckbar sind. Wenn ja, soll das Ding verschlüsselt werden. Das Verschlüsselungsverfahren ist weder was Besonderes, noch trägt es was zu meinem Problem bei.

Mein erlaubter Zeichensatz (müssen wir verwenden) ist ein einziger String. Ich muss jetzt mit dem ASCII-Wert jedes einzelnen Zeichens erfahren, an wievielter Stelle (Index) das Zeichen im Zeichensatz steht. Mit diesem Wert kann ich dann in der Verschlüsselung weiterrechnen. Nur: diesen Wert krieg ich nicht, ich weiß einfach nicht, wie.

HELP!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz