C/Tablice: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Revert, usunięcie interwiki (teraz w Wikidanych)
Znacznik: Edytor kodu źródłowego 2017
Linia 74:
* bufory - gdy wykorzystujemy je do przechowywania ogólnie pojętych danych, gdy traktujemy je jako po prostu "ciągi bajtów" (typ char ma rozmiar 1 bajta, więc jest elastyczny do przechowywania np. danych wczytanych z pliku przed ich przetworzeniem).
* napisy - gdy zawarte w nich dane traktujemy jako ciągi liter; jest im poświęcony osobny rozdział [[C/Napisy|Napisy]].
 
Przykład:
 
<source lang=c>
/*
http://joequery.me/code/snprintf-c/
gcc a.c -Wall
./a.out
012345678
hello th\0
turtle\078
2222\05678
 
*/
#include<stdio.h>
#define BUFSIZE 9
 
 
 
 
void init_buf(char *buf, size_t size){
int i;
for(i=0; i<size; i++){
buf[i] = i + '0'; // int to char conversion
}
}
 
void print_buf(char *buf){
int i;
char c;
for(i=0; i<BUFSIZE; i++){
c = buf[i];
if(c == '\0'){
printf("\\0");
 
}
else{
printf("%c", buf[i]);
}
}
printf("\n");
}
 
 
int main(){
char buf[BUFSIZE];
init_buf(buf, BUFSIZE);
print_buf(buf);
 
// hello there! == 12 characters, > BUFSIZE
init_buf(buf, BUFSIZE);
snprintf(buf, BUFSIZE, "hello there!");
print_buf(buf);
 
// turtle == 6 charaters, < BUFSIZE
init_buf(buf, BUFSIZE);
snprintf(buf, BUFSIZE, "turtle");
print_buf(buf);
 
// 2222220 == 7 charaters, > 5
init_buf(buf, BUFSIZE);
snprintf(buf, 5, "%d", 222222 * 10);
print_buf(buf);
 
return 0;
}
 
</source>
 
==Tablice wielowymiarowe==