我正在编写一个代码,它将从stdin中检查一个单词和一个文本,并在文本中出现时检查该单词。这是我的代码,但是当我编译代码时,它会在下面产生错误。从一个没有强制转换的指针中产生整数
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char* argv[])
{
char censor[] = "CENSORED";
char input[1028];
for(int i = 1; i < argc; i++){
if(strstr(input, argv[i]) != NULL){
for(int j = 0; j < strlen(input); j++){
if(strcmp(input[j], argv[i]) == 0){
input[j] = censor;
}
}
}
}
printf("%s", input);
printf("\n");
}
censored.c:在函数 '主':censored.c:13:15:警告:传递 参数 '的strcmp' 的1时将整数指针,未作铸造 [-Wint转换] if(strcmp(input [j],argv [i])== 0){censored.c:3:0中包含的文件:/usr/include/string.h:140:12:note:预期'const char *',但 参数的类型为'char'extern int strcmp(const char * __ s1,const char * __ s2) ^ censored.c:14:15:warning: [-Wint-conversion] input [j] = censor;
我不确定他们为什么认为char数组是一个整数,请大家帮忙,谢谢!
'输入[J]'装置选择第j个字符出来的阵列。所以你传递的是单个字符,而不是数组。我想你的意思是'input + j' –
'strstr(input,argv [i])!= NULL'使用未初始化的字符串? –
'strcmp'的参数是'const char * str1,const char * str2',你只在输入[j]中使用了一个字符' – Tisp