Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: ivanatora в Mar 20, 2007, 20:22



Титла: Array of strings - c
Публикувано от: ivanatora в Mar 20, 2007, 20:22
Здравейте!
Задачата е да се изведе предефиниран масив от char.
Ето с какво разполагам:
Примерен код

#include <stdio.h>

int main(){
        char ar[][2] = { "on","of","bl","ad" };
        int i;
        for (i=0; i<4; i++) printf("%d: %s\n",i,ar[i]);
        return 0;
}

Ето output-а:
Примерен код

0: onofbladx»&#191;®&#223;·
1: ofbladx»&#191;®&#223;·
2: bladx»&#191;®&#223;·
3: adx»&#191;®&#223;·

Очевидно нещо се получава ама до някъде - изкарва се не само елемент i, ами и тези след него (включително и някакви non-printalbe characters - защо?)
Дайте някаква идея?

[EDIT]
Даааа, току що открих проблема. char ar[][2] трябваше да е char ar[][3], защото и null terminator-а на низовете '\0' също заема един елемент ;)





Титла: Array of strings - c
Публикувано от: Erroroman в Mar 22, 2007, 19:29
Може и така

#include <stdio.h>

int main(){
     char *ar[4] = { "on","of","bl","ad" };
     int i;
     for (i=0; i<4; i++) printf("%d: %s\n",i,ar);
     return 0;
 }


Титла: Array of strings - c
Публикувано от: PAIN1 в Mar 24, 2007, 20:04
Имам някакъв спомен за терминиращ символ '\0' в края на всеки стринг се прибавя.


Титла: Array of strings - c
Публикувано от: cenata в Mar 25, 2007, 00:24
EDIT: нямше смисъл от коментара ми, не бях видял че човека си е решил проблема :)