Proper way to store/output strings in a 2D array?

This is a discussion on Proper way to store/output strings in a 2D array? within the C Programming forums, part of the General Programming Boards category; I need to store strings in 2D array and output the array. I can find the strings but i'm confused ...

1. Proper way to store/output strings in a 2D array?

I need to store strings in 2D array and output the array. I can find the strings but i'm confused on how to store them into the array. Here is the function i have so far:

Code:
```int store_string(char temp[10], char function[10][10])
{
int j, i, n, r=0;
char temp[] = "hello";

function[r][10] = temp;                          /*store string into row 0 */
r++;                                                       /*incrementing the row cause i want to store                   the next string in the next row*/
}```
Is that correct?

and also, how would i output the 2D array? is it like this?
Code:
```printf("%s" , function);

or

printf("%s", function [10][10]);```
or neither?

2. I guess what you want is:

Code:
```char str[length][width];

int i;
for(i = 0;i < length;i++)
printf("%s\n",str[i]);```
Remember when you have a 2D array, such as str above, str[i] points to the 1D array contained at line i, which is a string.

Regarding the assignment NO IT IS NOT CORRECT. You have to copy the contents of one string into another using strcpy(char[] destination, char[] source);

strcpy is a function in string.h . You should look it up.

So you would do something like :

Code:
```#include <string.h>

int store_string(char temp[10], char function[10][10])
{
int j, i, n, r=0;
char temp[] = "hello";

strcpy(function[r], temp);                          /*store string into row 0 */
r++;                                                       /*incrementing the row cause i want to store                   the next string in the next row*/
}```