2012-02-03 41 views
0

我試圖逐個檢查字符,所以我需要在我的2D數組中一次訪問一個字符。我試圖使用雙指針(例如:**p),但我的程序只是崩潰。所以我使用*p,但它給了我垃圾。在2D數組中一次只能訪問一個字符

這裏是我的代碼:

FILE *in; 
in = fopen("thefiles.txt", "r"); 
if (!in) { 
    printf("Failed to open input file\n"); 
    exit(1); 
} 

int j; 
char phrase[N_STRINGS][MAX_LENGTH_OF_A_SINGLE_STRING]; 
char string[MAX_LENGTH_OF_A_SINGLE_STRING]; 

for(j = 0; j < N_STRINGS; j++) 
{ 
    fscanf(in, "%s", string); 
    strcpy(phrase[j], string); 
} 

char *p;  
*p = phrase[0][0]; 
// Trying to use a pointer to point at the beginning(?) of the array 

printf("P = %s", p); 
// After printing it out, I see that it gives me rubbish 

謝謝了!

編輯:

好的,我想我剛剛解決了我自己的問題。哈! 所有我需要的是:

char p = phrase[0][0]; 

不應該有擺在首位指針搞砸:P

+1

我在這段代碼的其他地方看不到'word'? – RussS 2012-02-03 02:09:03

+0

變量'word'是什麼?你的意思是使用'詞組'嗎?你沒有給'p'賦值。 – 2012-02-03 02:09:48

+0

是的,抱歉。詞應該是短語。讓我編輯它:) – Dino55 2012-02-03 03:02:10

回答

1

假設一句話就是一句話,這是一個示例程序應該做你想要什麼。如果你想要的只是看到存儲在文件中的第一個單詞的值。

#include <stdio.h> 

#define N_STRINGS 2 
#define MAX_LENGTH_OF_A_SINGLE_STRING 1024 
int main() 
{ 
FILE *in; 
in = fopen("thefiles.txt", "r"); 
if (!in) { 
    printf("Failed to open input file\n"); 
    exit(1); 
} 

int j; 
char phrase[N_STRINGS][MAX_LENGTH_OF_A_SINGLE_STRING]; 
char string[MAX_LENGTH_OF_A_SINGLE_STRING]; 

for(j = 0; j < N_STRINGS; j++) 
{ 
    fscanf(in, "%s", string); 
    strcpy(phrase[j], string); 
} 

char *p = phrase[0]; 
printf("P = %s", p); 

return 0; 
} 
+0

我得到你編輯的代碼的整個短語/單詞。我試圖在第一個字符處設置一個指針(然後移動到下一個字符等),以便我可以做一些比較。謝謝您的幫助! – Dino55 2012-02-03 03:10:21