Копирование строк из главного в структуру c - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть количество строк, хранящихся в двумерном массиве с именем «info», и я хочу скопировать их в массив «reply» в структуре «notes». Я попытался сделать это, используя приведенный ниже цикл for, но он не копировал. Я не получаю сообщение об ошибке, просто скопировать строки. Я не знаю, что еще делать, может кто-нибудь дать мне совет, что мне нужно использовать?

struct notes{
   char tasks[40][250];
   char reply[40][250];
};

struct notes store;

#define M 11

int main()
{

    int a, i, k, l, j;
    char info[40][250];


    for( i = 0 ; i < M ; i++){
       strncpy(store.reply[i], info[i], 250);
    }   


}

1 Ответ

0 голосов
/ 28 апреля 2018

Ваш вопрос начинается с "У меня есть количество строк, хранящихся в двумерном массиве с именем" info "" , но мы на самом деле этого не видим.

Если вы инициализировали info с некоторыми строками, я не вижу ничего плохого в вашем коде.

Старайтесь избегать использования «магических» чисел; используйте #define вместо.

#include <stdint.h>
#define NUM 2   //number of strings
#define LEN 25  //length of each string

struct notes{
   char tasks[NUM][LEN];
   char reply[NUM][LEN];
};

struct notes store;
char info[NUM][LEN];

int main()
{
    /* Assign strings to info */
    char *mystring1 = "Hello world";
    strncpy(info[0], mystring1, LEN);
    char *mystring2 = "I love pie";
    strncpy(info[1], mystring2, LEN);

    /* Copy them to store.reply */
    for(uint8_t i=0; i<NUM; i++){
        strncpy(store.reply[i], info[i], LEN);
    }

    /* Print results */
    for(uint8_t i=0; i<NUM; i++){
        printf("%s\n", store.reply[i]);
    }
}

Выход:

Hello world
I love pie
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...