在字符串中存储字符串

问题描述:

我已经使用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

请阅读[问]。 –

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]); 
}