Archiv verlassen und diese Seite im Standarddesign anzeigen : ein array in ein string packen in C
Hallo,
kann ich den Inhalt eines arrays in einen string packen,
irgentwie sind ja strings auch nur arrays soweit ich das verstanden habe.
Ich habe mit der Syntax von strcpy und sprintf rumgespielt aber leider erfolglos.
Zur Zeit nutze ich eine for Schleife um den Inhalt anzuzeigen,
würde das ganze aber gerne über eine variable ansprechen können.
danke
peschmae
12-11-2005, 07:46
Strings in C sind ein Char-Array mit einem 0 im letzten Char. (Also ein "richtiges" 0 und kein Char-0 im Sinne von '0')
Was genau willst du jetzt wissen?
MfG Peschmä
Ich bastel mir ein Zahlensystem convertierungstool, nur so um C zu lernen.
Und möchte später über eine switch case anweisung die Zahlensysteme auswählen.
Die Ergebnisse sollen seperat in variable gepackt werden, so das ich diese nur noch ausgeben muss, und nicht für jede ausgabe eine Extra for schleife brauche:
/*test1.c*/
#include <stdio.h>
#include <string.h>
main()
{
unsigned long int z, b, q, r, step=0;
unsigned long int erg[20];
int i;
char dual[20], dual2;
printf("Gib Zahl ein !\n");
scanf("%d", &z);
printf("Gib Basis ein !\n");
scanf("%d", &b);
//printf("\nsteps:%d\n", step);
q = z / b;
r = z%b;
printf("\n Zahl: %5d | Rest : %3d \n", q, r);
erg[step] = r;
while (q > 0)
{
step++;
r = q%b;
q = q / b;
printf(" Zahl: %5d | Rest : %3d \n", q, r);
erg[step] = r;
//printf("%d", erg[step]);
}
printf("\nsteps:%d\n", step);
for (i=step; i >= 0; i--)
{
//sprintf(dual2,erg[i],sizeof(erg));
//strcpy(dual[i], "erg[i]");
//strcpy(*dual2, erg[i]);
}
printf("%d", dual2);
}
karx11erx
17-11-2005, 11:58
boba,
ich würde Dir ja gerne helfen, aber ich habe nicht wirklich verstanden, was Du eigentlich willst.
Willst Du das Ergebnis der Konvertierung in einem String ablegen, den Du dann auf einen Rutsch ausgeben kannst?
#include <string.h>
#include <stdio.h>
char *ConvStr (int n, int b, char *pszResult)
// lege Zahl z zur Basis b in pszResult ab
{
int i = 0;
static char digits [] = "0123456789ABDEFGHIJKLMNOPQRSTUVWXYZ";
if (b && (b < sizeof (digits)) {// nicht durch 0 teilen
do {
pszResult [i++] = digits [n % b]; // die Zahl wird falschrum abgelegt
n /= b;
} while (n); // mindestens "0" sollte im String drinstehen
pszResult [i] = '\0'; // abschließendes 0-Byte anfügen
strrev (pszResult); // String umdrehen
}
else
strcpy (pszresult, "NAN"); // not a number
return pszResult; // das ist nachher komfortabel ;)
}
int main (void)
{
char szResult [100];
long z, b;
// Zahlen einlesen ...
printf ("%s\n", ConvStr (z, b, szResult)); // Konvertieren und Ergebnis ausgeben
return 0;
}
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.