http://www.pronix.de -> Forum -> C-Programmieren -> Code-Schnipsel

Unterseiten

_strtoi

Letze Änderung: Freitag   06.01.2006
Plattformunabhängig
Konvertiert eine Zeichenkette innerhalb einer Zeichenkette in ein INT

Lizenz: BSD

#include <stdio.h>
#include <stdlib.h>	// atoi()
#include <string.h>	// size_t strlen()

/*
    konvertiert Zeichenkette innerhalb einer Zeichenkette mit Laenge i nach INT;
*/
int _strtoi(char *s, unsigned i){
	int r,b;// Rueckgabewert; temp. speicher

	// Parameter 1 pruefen
	if	(NULL==s)
		return -1;

	// Parameter 2 pruefen
	if	(i<1)
		return -2;

	// im reservierten Speicherbereich bleiben
	if	(strlen(s)<i)
		return -3;


	// das erste Byte nach der zu konvertierenden Zeichenkette sichern
	b=*(s+i);

	// String temporär entsprechend terminieren
	*(s+i)=0;

	// String in int konvertieren
	r=atoi(s);

	// temp. Terminierung rueckgaengig machen
	*(s+i)=b;

	return r;
	}


int main(){
	// Beispielstring
	char string[]="String mit Zahl 25 die umgewandelt werden soll.";

	// Zeiger auf den Anfang der Zahl
	char *z1=&(string[16]);

	// Zeiger auf das Ende der Zahl bzw. auf das 1. Byte nach der Zahl
	char *z2=&(string[18]);

	printf("%d\n",_strtoi(z1,z2-z1));

	return -1;
	}


Diskussion zu _strtoi()