我想比较一个字符串的元素和一个字符,这有什么不对?我得到分段错误。
我想通过一个字符串,将字符串的一部分复制到一个字符串元素,当元素=",",但我犯了一些错误。
传递'strcmp'的参数1使得整数指针没有强制转换
char palavra[1000],linha[1000];
int i;
while(fgets(linha, sizeof(linha), df)!=NULL){
i=0;
strcopy(palavra,"0");
while(strcmp(&linha[i],",")!=0){
strcpy(&palavra[i],&linha[i]);
i++;
}
printf("%s,",palavra);
}
答案 0 :(得分:1)
您不应该使用strcmp
来比较单个char
,而是用于比较完整字符串。如果您只想比较各个元素,您只需直接比较它们:
linha[i] == ','
同样适用于复制char。
答案 1 :(得分:1)
应该是
while(linha[i] != ','){
palavra[i] = linha[i];
i++;
}
虽然我对palavra[i]
赋值有点怀疑,因为它会覆盖在循环之前完成的strcpy为0
答案 2 :(得分:-1)
&linha[i]
所以,请使用if as
for( i=0; i < len; i++)
if(linha[i]!=',')