Можно и так.. .
// _70077822
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
void main()
{
const int size = 3;
const int str_size = 80;
char a[80];
char ** strings = (char **) malloc(size * sizeof(char *));
for (int n = 0; n < size; n++)
{
printf("\n Enter %d line... \n", n + 1);
strings[n] = (char *) malloc(size * sizeof(char));
strcpy(strings[n], gets(a));
}
system("cls");
for (int n = 0; n < size; n++)
puts((char *)strings[n]);
for (int n = 0; n < size; n++)
free(strings[n]);
free(strings);
getch();
}
Другие языки программирования и технологии
Как задать двумерный массив строк в C? Как его потом заполнять?
Можно так, например:
#include <stdio.h>
#include <string.h>
int main () {
char *ss[5]; // массив из пяти указателей на char
int c;
// создаем и сразу же заполняем
for (c = 0; c < 5; ++c) {
char str[100];
fgets(str, 100, stdin);
str[strlen(str) - 1] = 0; // последний символ '\n', убираем
ss[c] = (char *)malloc(strlen(str));
strcpy(ss[c], str);
}
puts("");
// выводим
for (c = 0; c < 5; ++c) {
printf("%s\n", ss[c]);
}
// удаляем
for (c = 0; c < 5; ++c) {
free(ss[c]);
}
return 0;
}
#include <stdio.h>
#include <string.h>
int main () {
char *ss[5]; // массив из пяти указателей на char
int c;
// создаем и сразу же заполняем
for (c = 0; c < 5; ++c) {
char str[100];
fgets(str, 100, stdin);
str[strlen(str) - 1] = 0; // последний символ '\n', убираем
ss[c] = (char *)malloc(strlen(str));
strcpy(ss[c], str);
}
puts("");
// выводим
for (c = 0; c < 5; ++c) {
printf("%s\n", ss[c]);
}
// удаляем
for (c = 0; c < 5; ++c) {
free(ss[c]);
}
return 0;
}
Павел Русин
Лажанулся насчет двумерного массива. Вот двумерный с динамическим созданием строк:
#include <stdio.h>
#include <string.h>
#define N 3
#define M 4
int main () {
char *ss[N][M];
int r, c;
// создаем и заполняем
for (r = 0; r < N; ++r) {
for (c = 0; c < M; ++c) {
char str[10];
fgets(str, 10, stdin); // маленькие строки, не больше 9 символов
str[strlen(str) - 1] = 0; // последний символ '\n', убираем
ss[r][c] = (char *)malloc(strlen(str));
strcpy(ss[r][c], str);
}
}
puts("");
// выводим
for (r = 0; r < N; ++r) {
for (c = 0; c < M; ++c) {
printf("%""10s", ss[r][c]);
}
puts("");
}
// удаляем
for (r = 0; r < N; ++r) {
for (c = 0; c < M; ++c) {
free(ss[c]);
}
}
}
#include <stdio.h>
#include <string.h>
#define N 3
#define M 4
int main () {
char *ss[N][M];
int r, c;
// создаем и заполняем
for (r = 0; r < N; ++r) {
for (c = 0; c < M; ++c) {
char str[10];
fgets(str, 10, stdin); // маленькие строки, не больше 9 символов
str[strlen(str) - 1] = 0; // последний символ '\n', убираем
ss[r][c] = (char *)malloc(strlen(str));
strcpy(ss[r][c], str);
}
}
puts("");
// выводим
for (r = 0; r < N; ++r) {
for (c = 0; c < M; ++c) {
printf("%""10s", ss[r][c]);
}
puts("");
}
// удаляем
for (r = 0; r < N; ++r) {
for (c = 0; c < M; ++c) {
free(ss[c]);
}
}
}
Задать-то не сложно, но что понимается под заполнением?
Т.м.т .
Присвоить значения строкам.
Прикольно, первый раз такое встречаю =) А так не катит (например char[n][m] ) ? Только указать строковый тип. Хотя наверное компилятор ругаться будет
Т.м.т .
Разве в си есть строковые типы? Только массивы из символов.
Лера, читайте документацию. Если вопросы, можете ко мне в приват. На вопросы отвечу, но за вас делать не буду.
int arr[size1][size2];
Заполнение:
for(int i = 0; i < size1; i++)
for(int j=0;j< size2; j++)
{
arr[j] = 1; // твое значение
}
Заполнение:
for(int i = 0; i < size1; i++)
for(int j=0;j< size2; j++)
{
arr[j] = 1; // твое значение
}
Т.м.т .
Это двумерный массив целочисленных чисел.
А мне нужен двумерный массив строк.
А мне нужен двумерный массив строк.
Похожие вопросы
- помогите срочно надо Квадратные массивы тема: Двумерные массивы на языке C++
- .помогите пожалуйста двумерный массив на языке c++
- помогите с программой!!! (Си) Двумерный массив+строки
- Как задать двумерный массив на C#, чтобы значения можно было писать при запуске программы?
- Необходимо упорядочить строки двумерного массива, по возрастанию первого эл-та. СИ.
- в двумерном массиве возвестив квадрат строки, расположенные между строками с мин и макс элементами
- Помогите !!!С++Работа с одномерными и двумерными массивами. В каждой строке матрицы F(k, k) элемент. лежащий на главной
- Каким образом в c++ можно передать двумерный массив в фунцкию?
- Задача на массивы двумерные помогите доделать на C#,код прикрепляю и задачу
- Как удалить все чётные строки из двумерного массива С++
// _70077822
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
void main()
{
const int size = 3;
char a[80];
int str_size;
char ** strings = (char **) malloc(size * sizeof(char *));
for (int n = 0; n < size; n++)
{
printf("\n Enter %d line... \n", n + 1);
gets(a);
str_size = strlen(a) + 1;
strings[n] = (char *) malloc(str_size * sizeof(char));
strcpy(strings[n], a);
}
system("cls");
for (int n = 0; n < size; n++)
puts((char *)strings[n]);
for (int n = 0; n < size; n++)
free(strings[n]);
free(strings);
getch();
}