Программирование на C - разделение элемента массива на отдельные символы - PullRequest
0 голосов
/ 25 ноября 2011

Допустим, у меня есть массив = {2, 3, ABCD}

Во-первых, мне нужно сделать третий элемент равным новому массиву. И я знаю, что char newArr [] = array [2] не будет работать, так как мне это сделать?

Во-вторых, мне нужно распечатать символы newArr один за другим. Так что мой вывод должен быть В С D

Они должны быть отделены друг от друга. Я знаю, как это сделать в Java, но я понятия не имею, что такое синтаксис в C. Ваша помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

Что-то вроде:

char *array[] = {"2", "3", "ABCD"}; // your existing array.
char n        = strlen(array[2]);   // size of 2nd element.
char *newArr  = malloc(n);          // create new array.
int i;  

// populate the new array.
for(i=0;i<n;i++) {
        newArr[i] = array[2][i];
}       

// print.
for(i=0;i<n;i++) {
        printf("%c\n",newArr[i]);
}       
0 голосов
/ 26 ноября 2011

Дополнительная библиотека не требуется:

  typedef struct {char x[100];}helper;
  char *a[]={"2","3","ABCD"}, b[100];
  *(helper*)b=*(helper*)a[2];
  puts(b);
...