Помещение строки в 2D-матрицу в Objective C ++

0

Поэтому я использую Objective C++, и я хочу поместить строку в массив int by X by X (X = length string/4) с помощью кода ASCII. Предполагается, что первая четверть строки (которая полностью отформатирована в массив 4 х Х) должна находиться в [0] [col], вторая четверть - в [1] [col], третья четверть - в [2] [col] и четвертой четверти в [3] [col]. Поэтому я попробовал следующее с 4 циклами, но он вообще не работает, и я просто не могу заставить его работать как-то. Любые предложения будут ценны.

textMatrix - это матрица, в которой я хочу поместить номер NSString/ASCII, а inputFinal - сама NSString. Длина * (1/4) или что-то еще всегда будет целым числом.

for(int i = 0; i < length*(1/4); i++)
{
    textMatrix[0][i] = (int)[inputFinal characterAtIndex: i];
}
for(int j = length*(1/4); j < length*(2/4); j++)
{
    textMatrix[1][j] = (int)[inputFinal characterAtIndex: j];

}
for(int k = length*(2/4); k < length*(3/4); k++)
{
    textMatrix[2][k] = (int)[inputFinal characterAtIndex: k];
}
for(int l = length*(3/4); l < length; l++)
{
    textMatrix[3][l] = (int)[inputFinal characterAtIndex: l];
}
  • 0
    Как вы проверяете, что это не работает, вы распечатали значения?
  • 0
    Я использовал точки останова, а затем проверил значения в textMatrix, но его ноль в значительной степени
Теги:
arrays
copying
nsstring

3 ответа

0
Лучший ответ

на самом деле двойная петля вроде так оказалась лучше всего для меня:

int index = 0;
for(int row = 0; row < 4; row++)
{
    for(int col = 0; col < length/4; col++)
    {
        textMatrix[row][col] = (int)[inputFinal characterAtIndex:index];
        index++;
    }
}
1

Вы можете переписать 4 циклы в 1 цикл:

 for(int i = 0; i < length; i++)
 {
   textMatrix[i/4][i%4] = (int)[inputFinal characterAtIndex:i];
 }
0

Я не думаю, что понимаю, что вы пытаетесь сделать.

С учетом строки: "Here";

вы хотите:

Matrix[0][0] = 'H';
Matrix[1][1] = 'e';
Matrix[2][2] = 'r';
Matrix[3][3] = 'e';

Если это так, то это работает:

#import <objc/objc.h>
#import <objc/Object.h>
#import <Foundation/Foundation.h>

@implementation TestObj
int main()
{
    NSString* str = @"Here";

    int matrix[4][4] = {0};

    for (int i = 0, j = 0; j < 4; ++j)
    {
        matrix[i][i++] = (int) [str characterAtIndex: j];
    }

    for (int i = 0; i < 4; ++i)
    {
        for (int j = 0; j < 4; ++j)
        {
            printf("%c", (char)matrix[i][j]);
        }
    }

    return 0;
}
@end

Вышеприведенные отпечатки Here.

  • 0
    Ну, вот что я пытаюсь сделать, скажем, мы используем «работает нормально», тогда я бы хотел: Matrix [0] [0] = 'w'; Matrix [0] [1] = 'o'; Matrix [1] [0] = 'r'; Matrix [1] [1] = 'k'; Matrix [2] [0] = 's'; Matrix [2] [1] = ''; Matrix [3] [0] = 'o'; Matrix [3] [1] = 'k'; Matrix [3] [3] = 'e';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню