在字符串中存储字符串
问题描述:
我已经使用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");
}
}
答
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]);
}
这不是导致seg错误,但我怀疑'p'不会是你期望的值/如果你来读它。 – George
'p'上的操作,例如:'p ++;'是多余的。无论如何,你不断地将它重置为0。 – ThingyWotsit
请阅读[问]。 –