Δημοσιεύτηκε: 23 Μαρ 2012, 21:21
από Ilias95
Βασικά αυτό που προσπαθώ να κάνω είναι να τυπώσω ένα-ένα τα strings μιας array.

Με subscripting θα γινόταν έτσι:
Μορφοποιημένος Κώδικας: Επιλογή όλων
#include <stdio.h>

#define N 3

int main(void)
{
char table[N][100] = {"abc", "def", "ghi"};
int i;

for (i = 0; i < N; i++)
printf("%s\n", table[i]);

return 0;
}

Το πρόβλημα αν πάμε να το κάνουμε με pointer arithmetic είναι το πως θα πάμε απ' το ένα string στο άλλο.

Το υλοποίησα έτσι:
Μορφοποιημένος Κώδικας: Επιλογή όλων
#include <stdio.h>

#define N 3
#define STRINGLEN 100

int main(void)
{
char table[N][STRINGLEN] = {"abc", "def", "ghi"}, *p;

for (p = table[0]; p <= table[N-1]; p += STRINGLEN)
printf("%s\n", p);

return 0;
}

Υπάρχει κάποια καλύτερη λύση;