Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 20. Nov 2018 16:19

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 19. Okt 2007 14:14 
hallo,

ich habe beispielsweise folgende daten:
jpg/img-0001
jpg/image-0002
tiff/pic-0200
png/pic-9999

daraus möchte ich die zahlen der hinteren vier stellen ermitteln und als integer einlesen

also so:
jpg/img-0001 wird "1"
jpg/image-0002 wird "2"
tiff/pic-0200 wird "200"
png/pic-9999 wird "9999"

vielen Dank und viele Grüße


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 22. Okt 2007 22:47 
Sicherlich gibt's mehrere Lösungsvorschläge, hier einer unter C:

1. charlänge bestimmen.
2. mittels for/while - schleife von hinten an die letzten 4 zeichen einlesen in ein eigenes Array.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 24. Okt 2007 8:40 
Offline
prolinux-forum-admin
Benutzeravatar

Registriert: 05. Mai 2004 7:35
Beiträge: 1238
Muss es denn C sein? Hier das ganze als Shellskript:

getnum:
Code:
#!/bin/sh
# Verwendung: getnum [Dateiname]

IFS="
"

for line in $(cat "$1"); do
        no="${line##*-}"
        echo "$(($no*1))"
done
Das macht nicht genau das beschriebene (wäre auch möglich) bei dieser Form von Daten sollte es aber gehen.

Falls es wirklich C sein muss: man 3 scanf


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 01. Nov 2007 8:17 
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main&#40;int argc, char **argv&#41; &#123;

	char *str = "jpg/img-0001";
	char *ptr = NULL;
	int num;

	/* entweder nach '-' suchen&#58; */
	/* ------------------------- */
	if&#40;! &#40;ptr = strrchr&#40;str, '-'&#41;&#41; &#41;
		return 1;
	num = atoi&#40;ptr +sizeof&#40;char&#41;&#41;;
	printf&#40;"%d\n", num&#41;;

	/* oder 4 Zeichen zurück zählen&#58; */
	/* ----------------------------- */
	if &#40;strlen&#40;str&#41; < 4&#41;
		return 1;
	ptr = &str&#91;strlen&#40;str&#41;-4&#93;;
	num = atoi&#40;ptr&#41;;
	printf&#40;"%d\n", num&#41;;

return 0;
&#125;
Die Prüfung, ob der wie auch immer übergebene String den vorausgesetzten Konventionen entspricht, ist eine andere Baustelle.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

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


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de