come assegnare un valore a un array di stringhe?

per esempio

#include  #include  #include  char substr[10][20]; int main() { substr[0] = "abc"; printf("%d", substr[0]); } 

ovviamente sopra è sbagliato? come farlo? Grazie

Non è ansible assegnare stringhe del genere in C. Invece, utilizzare strcpy(substr[0], "abc") . Inoltre, utilizza %s non %d nel tuo printf

Odio dare risposte “complete” alle domande dei compiti, ma l’unico modo per rispondere alla tua domanda è mostrarti la risposta al tuo problema, perché è così basilare:

 #include  #include  #define MAXLEN 20 char substr[10][MAXLEN]; int main(void) { strncpy(substr[0], "abc", MAXLEN); puts(substr[0]); return 0; } 

Il tuo codice (così com’è) ha diversi errori:

  • Stai trattando substr[0] come stringa letterale. Non puoi farlo.
  • Stavi usando i formattatori di printf in modo errato. %s è per le stringhe
  • Non è necessario disturbare printf() per stampare una stringa
  • Dovresti (nel codice reale) fare attenzione ai buffer overflow, quindi strncpy()
  • Se main() non vuole / ha bisogno di argc e argv , i suoi argomenti dovrebbero essere void
  • main() dovrebbe restituire un valore, poiché il suo tipo restituito è int
  • Non stai usando nulla di , perché includerlo?

Suggerisco di cercare stringhe letterali, le funzioni disponibili in così come gli specificatori di formato.

Inoltre, non sto controllando il ritorno di strncpy () , che è qualcosa che dovresti fare. Questo è lasciato come esercizio per il lettore.

Spero che questo ti aiuti:

 void main(void) { char* string[10]; string[0] = "Hello"; } 

Altrimenti penso che sia necessario copiarlo a mano o usare strcpy o simili per spostarlo da un blocco di memoria a un altro.