Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
die letzten vier stellen aus einem char entnehmen und bearbeiten

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
equal
Gast





BeitragVerfasst am: 19. Okt 2007 14:14   Titel: die letzten vier stellen aus einem char entnehmen und bearbeiten

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
 

sesame
Gast





BeitragVerfasst am: 22. Okt 2007 22:47   Titel:

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.
 

Lateralus
prolinux-forum-admin


Anmeldungsdatum: 05.05.2004
Beiträge: 1238

BeitragVerfasst am: 24. Okt 2007 8:40   Titel:

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
 
Benutzer-Profile anzeigen Private Nachricht senden

frb
Gast





BeitragVerfasst am: 01. Nov 2007 8:17   Titel:

Code:

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

int main(int argc, char **argv) {

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

   /* entweder nach '-' suchen: */
   /* ------------------------- */
   if(! (ptr = strrchr(str, '-')) )
      return 1;
   num = atoi(ptr +sizeof(char));
   printf("%d\n", num);

   /* oder 4 Zeichen zurück zählen: */
   /* ----------------------------- */
   if (strlen(str) < 4)
      return 1;
   ptr = &str[strlen(str)-4];
   num = atoi(ptr);
   printf("%d\n", num);

return 0;
}

Die Prüfung, ob der wie auch immer übergebene String den vorausgesetzten Konventionen entspricht, ist eine andere Baustelle.
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy