In realtà non esiste un tipo di dato stringa in C. Utilizzi un puntatore a caratteri.
Nell'esempio che ti ho postato, utilizzo l'allocazione dinamica della memoria e, ovviamente, se non l'hai mai vista può risultare difficile da comprendere, ma poi ci fai l'abitudine.
In quel caso, puoi liberare e riallocare memoria come ti pare e piace. Ad esempio puoi utilizzare un array di 5 stringhe, poi liberare la memoria e utilizzarle uno di 10 stringhe (lo stesso con la dimensione delle stringhe).
Se le dimensione sono fisse, puoi fare così, rimandando ad un altro momento la comprensione della gestione dinamica della memoria:
Codice PHP:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#define N 3
#define SIZE 80
int main()
{
char strs[N][SIZE];
for(int i = 0; i < N; i++)
{
printf("[input]>> ");
gets(strs[i]);
}
printf("\n");
for(int i = 0; i < N; i++)
printf("[output]<< %s\n", strs[i]);
return 0;
}
Come prima, solo che qui le dimansioni sono fisse.
Tornando alle stringhe, guarda questo esempio:
Codice PHP:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char* str = "c++";
while(*str)
{
putchar(*str);
str++;
}
return 0;
}
Come noterai, str è un puntatore