Gegeben ein String:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Aber es sollen nur die ersten 213 Zeichen ausgegeben werden:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Intuitive Loesung: mit einer for-Schleife die ersten 213 Zeichen ausgeben
Bessere Loesung: printf mit %.*s Format
Beispiel:
1 #include <stdio.h> 2 3 int main() 4 { 5 int i, j; 6 char txt[] = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, 7 sed diam nonumy eirmod tempor invidunt ut labore et dolore 8 magna aliquyam erat, sed diam voluptua. At vero eos et 9 accusam et justo duo dolores et ea rebum. Stet clita kasd 10 gubergren, no sea takimata sanctus est Lorem ipsum dolor sit 11 amet."; 12 13 #ifdef TEST1 14 for (j = 0; j < 1000000; j++) 15 for (i = 0; i < 213; i++) 16 printf("%c", txt[i]); 17 #endif 18 19 #ifdef TEST2 20 for (j = 0; j < 1000000; j++) 21 printf("%.*s", 213, txt); 22 #endif 23 }
Test1:
gcc -DTEST1 test.c && time ./a.out > /dev/null
real 0m2.850s
user 0m2.804s
sys 0m0.006s
Test2:
gcc -DTEST2 test.c && time ./a.out > /dev/null
real 0m0.220s
user 0m0.210s
sys 0m0.009s

