Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Any C programmers wanna help convert code to convert between MIDI + CSV?
#30
(08-29-2022, 01:25 PM)Kernelpanic Wrote:
Quote:JRace - You got it.  In C, string literals are one dimensional arrays of characters and can be treated as such.
The square brackets are an index into that array, allowing access to one character at a time.


You can also create multidimensional arrays. In memory they are also stored as an order, but they can be accessed only by row and column specs.

The following example creates a two-dimensional magic square. By specifying row + column, you can specifically access the individual field elements; number <space> number. A field in C starts at zero.
Incorrect entries are not intercepted!

The editor has some problems with a C source text. Well, the competition!  Rolleyes
Code: (Select All)
//Zugriff auf Feldelemente - 29. Aug. 2022

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    int magisches_quadrat[4][4] = {
                                                                    {16, 3, 2, 13},
                                                                    {5, 10, 11, 8},
                                                                    {9, 6, 7, 12},
                                                                    {4, 15, 14, 1}
                                                                };
    int feldelement1, feldelement2, *zgr;
    int *zgr_mag = &magisches_quadrat[0][0];
        
    printf("\nZugriff auf zweidimensionales Feld\n");
                
    //Quadrat ausgeben
    printf("\nMagisches Quadrat ausgeben:\n");
    
    for(int i = 0, j = 1; i < 16; i++, j++)
    {
        printf("%2d ", zgr_mag[i]);
        if(j % 4 == 0)
            printf("\n");
    }
    //Zeile, Spalte beginnt in C bei 0!
    printf("\nInhalt von [2][3] = %d", magisches_quadrat[2][3]);
    
    printf("\n\nWelches Feldelement soll angezeigt werden?");
    printf("\nGeben Sie das Element an[][] - Zahl <> Zahl: ");
    scanf("%d %d", &feldelement1, &feldelement2);
    
    printf("\nInhalt von [%2d][%2d] = %2d", feldelement1, feldelement2,
                                                                                magisches_quadrat[feldelement1][feldelement2]);
    
    printf("\n\n");
    return(0);
}

Example:
[Image: Zugriff-auf-Feldelemente2022-08-29.jpg]

Oh yeah, you can create multidimensional arrays in C, but a string literal such as "Hello, world!" is treated as a one dimensional array of characters, with a NULL (0) as the last element.

If you try to create a multidimensional string array in C, you are really only creating an array of pointers to strings.
Reply


Messages In This Thread
RE: Any C programmers wanna help convert code to convert between MIDI + CSV? - by JRace - 08-30-2022, 04:55 AM



Users browsing this thread: 1 Guest(s)