【发布时间】:2016-06-22 05:53:01
【问题描述】:
如何在 char 数组中找到一个单词并使用通配符 (*) 对其进行审查?
我试图找到第一次出现的单词,但失败了。我已经尝试过了,它也没有工作。我是新手,我已经尝试了 5 个小时。
int main()
{
int w,q;
char l,m;
char *arr, *swear;
int i,a,t,k,z;
printf("Enter a word which is not allowed.");
scanf("%s", swear);
printf("Now enter a word.");
scanf("%s", arr);
for(a=0; swear[a]!='\0'; ++a); //finding length of swear
for(t=0;arr[t]!='\0';t++); // finding length of arr
for(i=0,k=0;k<t & i<t;i++,k++)
{
arr[i]=l;
swear[k]=m;
if(strstr(swear,arr))
arr[i]='*';
else
break;
}
for(z=0;z<t;z++)
{
printf("%c",arr[z]);
}
return(0);
}
【问题讨论】:
-
这不是 cmets 的工作方式。评论可以解释为什么你在做你正在做的事情而不是你正在做的事情。不妨习惯于解释为什么而不是解释什么。
-
请:显示更多代码,尤其是
arr是如何声明的。阅读MCVE。 -
感谢我编辑了我的答案
-
scanf需要足够大的缓冲区来存储字符串而不是悬空指针。尝试类似char arr[1024], swear[1024];并防止scanf写出缓冲区scanf("%1024s",发誓);`