2014-01-18 61 views
0

所以我使用Objective C++,並且我想通過使用ASCII碼將一個字符串放入X(X =字符串長度/ 4)int數組中。字符串的第一個四分之一(被格式化爲完全適合4 X陣列)應該在[0] [col],第二季度進入[1] [col],第三季度進入[2] [col]和第四季度[3] [col]。所以我嘗試了以下4個for循環,但它根本不起作用,而我似乎無法讓它以某種方式工作。任何建議將不勝感激。把字符串放入目標C++中的二維矩陣

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

如何驗證它不工作,有你打印的值? – bsarr007

+0

我使用斷點,然後檢查textMatrix中的值,但它的空幾乎 – jundl77

回答

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++; 
    } 
} 
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

好吧繼承人我試圖做,讓我們說我們使用「工作好」,然後我想:矩陣[0] [0] ='w'; Matrix [0] [1] ='o'; 矩陣[1] [0] ='r'; Matrix [1] [1] ='k'; Matrix [2] [0] ='s'; Matrix [2] [1] =''; 矩陣[3] [0] ='o'; 矩陣[3] [1] ='k'; 矩陣[3] [3] ='e'; – jundl77

1

你可以重寫你的4個迴路在1個循環:

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