Add solution for const-assignment.
This commit is contained in:
parent
5a3b146df3
commit
8b9d9bd62d
@ -16,8 +16,9 @@
|
|||||||
#define PUFFER_GROESSE 100
|
#define PUFFER_GROESSE 100
|
||||||
|
|
||||||
|
|
||||||
char *gibTextEin(char *ausgabeText, char *puffer, unsigned int groesse);
|
char *gibTextEin(const char *ausgabeText, char *puffer, unsigned int groesse);
|
||||||
void gibSummeAus(unsigned int zahlen[], unsigned int anzahl);
|
void gibSummeAus(const unsigned int zahlen[], unsigned int anzahl);
|
||||||
|
unsigned int konvertiereZahlen(const char *text, unsigned int zahlen[], unsigned int maxZahlen);
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
@ -34,7 +35,7 @@ int main()
|
|||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *gibTextEin(char *ausgabeText, char *puffer, unsigned int groesse)
|
char *gibTextEin(const char *ausgabeText, char *puffer, unsigned int groesse)
|
||||||
{
|
{
|
||||||
printf("%s", ausgabeText);
|
printf("%s", ausgabeText);
|
||||||
fgets(puffer, groesse, stdin);
|
fgets(puffer, groesse, stdin);
|
||||||
@ -47,7 +48,68 @@ char *gibTextEin(char *ausgabeText, char *puffer, unsigned int groesse)
|
|||||||
return puffer;
|
return puffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gibSummeAus(unsigned int zahlen[], unsigned int anzahl)
|
// 1. Variante mit strtok (zahl steht separat) und a) sscanf oder b) stroul
|
||||||
|
// unsigned int konvertiereZahlen(const char *text, unsigned int zahlen[], unsigned int maxZahlen)
|
||||||
|
// {
|
||||||
|
// unsigned int anzahl = 0;
|
||||||
|
// char *kopie = malloc((strlen(text)+1) * sizeof(char));
|
||||||
|
|
||||||
|
// if(kopie != NULL)
|
||||||
|
// {
|
||||||
|
// const char *trenner = " \t;,.:\n";
|
||||||
|
// char *token;
|
||||||
|
|
||||||
|
// strcpy(kopie, text);
|
||||||
|
|
||||||
|
// token = strtok(kopie, trenner);
|
||||||
|
|
||||||
|
// while(token != NULL && anzahl < maxZahlen)
|
||||||
|
// {
|
||||||
|
// //if(sscanf(token, "%u", &zahlen[anzahl]) == 1)
|
||||||
|
// // anzahl++;
|
||||||
|
// char *endZgr;
|
||||||
|
|
||||||
|
// zahlen[anzahl] = strtoul(token, &endZgr, 10);
|
||||||
|
|
||||||
|
// if(token != endZgr)
|
||||||
|
// anzahl++;
|
||||||
|
|
||||||
|
// token = strtok(NULL, trenner);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
// free(kopie);
|
||||||
|
|
||||||
|
// return anzahl;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// 2. Variante direkt mit strtoul (Zahl ist nahtlos in String integriert)
|
||||||
|
unsigned int konvertiereZahlen(const char *text, unsigned int zahlen[], unsigned int maxZahlen)
|
||||||
|
{
|
||||||
|
unsigned int anzahl = 0;
|
||||||
|
const char *anfangsZgr = text;
|
||||||
|
char *endZgr;
|
||||||
|
|
||||||
|
while(anzahl < maxZahlen && *anfangsZgr != '\0')
|
||||||
|
{
|
||||||
|
zahlen[anzahl] = strtoul(anfangsZgr, &endZgr, 10);
|
||||||
|
|
||||||
|
if(endZgr != anfangsZgr)
|
||||||
|
{
|
||||||
|
anfangsZgr = endZgr;
|
||||||
|
anzahl++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
anfangsZgr++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return anzahl;
|
||||||
|
}
|
||||||
|
|
||||||
|
void gibSummeAus(const unsigned int zahlen[], unsigned int anzahl)
|
||||||
{
|
{
|
||||||
int summe = 0;
|
int summe = 0;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user