2017-04-20 240 views
-2

我已經使用char * is []來創建字符串數組。我已經要求用戶輸入字符串。我不知道我哪裏出錯了。它顯示分段錯誤的#include在字符串中存儲字符串

#include <string.h> 
#include <stdlib.h> 

int main() 
{ 
    int count=0,p; 
    char *is[100]; 
    for(int i=0;i<8;i++) 
    { 
     p=0; 
     scanf("%s",is[i]); 
     p++; 
    } 
    for(int i=0;i<4;i++) 
    { 
     for(int j=0;j<4;j++) 
     { 
      if(strcmp(is[i],sis[4+j])==0) 
      { 
       count=count+1; 
      } 
     } 
    } 
    if(count>=2) 
    { 
     printf("similar"); 
    } 
    else{ 
     printf("not similar"); 
    } 


} 
+0

這不是導致seg錯誤,但我懷疑'p'不會是你期望的值/如果你來讀它。 – George

+0

'p'上的操作,例如:'p ++;'是多餘的。無論如何,你不斷地將它重置爲0。 – ThingyWotsit

+0

請閱讀[問]。 –

回答

2

char *is[100];聲明的char指針數組。你需要分配內存給is元素來存儲字符串。

for(int i=0;i<8;i++) 
{ 
    is[i] = malloc(20) //Assuming each array can hold only 20 chars including null character. 
    scanf("%s",is[i]); 
}