Seite 1 von 1

Elemente eines Arrays berechnen

Verfasst: Fr Jun 19, 2009 8:01 am
von SeriK00
Guten morgen,
ich brauche von euch ein Tipp.
Dem array data[128] werden ein Paar Werte zugewiesen.
Nun will ich die Anazhl der zugewiesenen Elemente berechnen.
Meine Lösung funktioniert, aber nicht wenn eine 0 zugewiesen wird.

Vielen Dank im Voraus.

Code: Alles auswählen

#include "stdafx.h"
#include <string.h>

typedef struct
{
	unsigned char data[128];
	unsigned char *pData;
	unsigned short int length;
}SEND_BUF;
SEND_BUF sendBuffer0;

int main ( void )
{
	unsigned short int len=0; 
		sendBuffer0.data[0]= 200;
		sendBuffer0.data[1]= 205;
		sendBuffer0.data[2]= 0;
		sendBuffer0.data[3]= 45;
		sendBuffer0.data[4]= 46;
		sendBuffer0.data[5]= 47;
		sendBuffer0.data[6]= 48;
	
		sendBuffer0.pData = &sendBuffer0.data[0];

	while ( *sendBuffer0.pData )
	{
		sendBuffer0.pData++;
		len++;
	}

	int i ;
	i = len;
	return 0;
}

Re: Elemente eines Arrays berechnen

Verfasst: Fr Jun 19, 2009 8:13 am
von Xin
SeriK00 hat geschrieben:Guten morgen,
ich brauche von euch ein Tipp.
Dem array data[128] werden ein Paar Werte zugewiesen.
Nun will ich die Anazhl der zugewiesenen Elemente berechnen.
Meine Lösung funktioniert, aber nicht wenn eine 0 zugewiesen wird.
Bei einem String ist das 0-Byte die Endmarkierung. Wenn Du alle möglichen Zeichen als Daten benötigst, dann musst Du das Ende des Strings entweder Escapen oder Dir die Länge des Datensatzes gezielt merken.
Im 2. Fall nimmst Du Dir eine Variable und schreibst da eben die benutzte Länge rein. Fertig.
Im 1. Fall nimmst Du ein Zeichen, zum Beispiel den \. Das Zeichen "flüchtet" aus der normalen Leseroutine und sagt Dir, dass jetzt ein Sonderzeichen kommt. Zum Beispiel \\, was einen \ erzeugt. Oder \0, was vielleicht das Ende-Symbol darstellt. Oder \n, was einen neuen Datensatz beginnt... was immer Du halt brauchst.