Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 比较两个用户输入数组之间的元素?_C_Arrays_Twitter - Fatal编程技术网

C 比较两个用户输入数组之间的元素?

C 比较两个用户输入数组之间的元素?,c,arrays,twitter,C,Arrays,Twitter,(我对编程相当陌生……温柔一点:C) 我正试图完成一个额外的学分分配,其中我必须编码一个twitter扫描器。我必须首先将用户输入带到标签中 例:“CMSC101” 然后从用户处读取“tweets”,直到用户输入” 从这里开始,程序计算用户使用标签的次数,以及在tweet中提到标签的次数 进展: #include <stdio.h> int main(void){ int [MAX_TWEET_SIZE]; char target_tweet[MAX_TWEET_SIZE]; ch

(我对编程相当陌生……温柔一点:C) 我正试图完成一个额外的学分分配,其中我必须编码一个twitter扫描器。我必须首先将用户输入带到标签中 例:“CMSC101” 然后从用户处读取“tweets”,直到用户输入” 从这里开始,程序计算用户使用标签的次数,以及在tweet中提到标签的次数

进展:

#include <stdio.h>
int main(void){

int [MAX_TWEET_SIZE];
char target_tweet[MAX_TWEET_SIZE];
char tweet = 0;
int match = 0;
int instance = 0;

printf ("Enter Target Tweet\n");

fgets (target_tweet, MAX_TWEET_SIZE, stdin);

if (target_tweet[0] != '#'){
    printf("ERROR\n");
    return 0;
}   

printf("Enter Tweets!\nenter '.' to quit: \n");


while (tweet < 140){
    scanf("%c", &tweet);
    tweet = tweet + 1;
    if ((tweet = target_tweet)){
        printf ("Tweet Matched.\n");
        match = match + 1;

    }
    if ((tweet = '.')){
        printf("%d tweet(s) matched\n", match); 
        return 0;
    }
}
return 0;
}
#包括
内部主(空){
int[MAX_TWEET_SIZE];
char target_tweet[最大tweet_大小];
char tweet=0;
int匹配=0;
int实例=0;
printf(“输入目标Tweet\n”);
fgets(目标tweet,最大tweet大小,标准输入);
如果(目标推特[0]!='#'){
printf(“错误\n”);
返回0;
}   
printf(“输入Tweets!\n输入“.”退出:\n”);
while(tweet<140){
scanf(“%c”和tweet);
tweet=tweet+1;
如果((tweet=target_tweet)){
printf(“Tweet匹配。\n”);
匹配=匹配+1;
}
如果((tweet='.')){
printf(“%d条推文匹配\n”,匹配);
返回0;
}
}
返回0;
}
这就是我到目前为止所做的,它有一些问题(例如:while循环)。我感到非常沮丧,我不确定我是否做对了
任何帮助都将不胜感激!

乍一看有两个错误:

if ((tweet = target_tweet))
在if情况下,如果您想检查两个变量是否相等,但无法比较两个字符串,则应使用==。您的代码会将target_tweet分配给tweet,但它们甚至不是相同的类型。我甚至不知道您想在这里做什么。如果您想检查tweet和target_tweet是否相等,则应使用strcmp,并且应ld以字符串形式读入tweet

while (tweet < 140)
基本上我会这样尝试:

while (1){
   scanf("%s", tweet);
   if (strcmp(tweet, target_tweet == 0){
       pritnf ("Tweet Matched.\n");
       match++;
   }

   if ((tweet[0] == '.')){
       printf("%d tweet(s) matched\n", match); 
      break; //to end the loop
   }
}

首先,您有一些拼写错误。第一个是while循环中的printf。第二个是顶部的int MAX_TWEET_大小。您有一个额外的括号

其次,在while
(tweet<140){
,由于数据类型范围有限,比较总是正确的。我建议您改用
while(true){}


最后一个错误是if((tweet=target_tweet)){。在这段代码中,您从
char*
char
的转换无效。要解决这个问题,您可以使用
strcmp
,因为您无法用="。这就是我发现的所有代码错误。我希望这能回答您的问题。

您有一些拼写错误,可能是也可能不是错误的来源。拼写错误不在我的编译器上,但我很高兴您在这里指出了它们!感谢您的帮助,我仍然不确定如何编写strcomp函数以使其返回主要功能(如果有的话)我的主要问题是让程序这么做:目标:#帮助tweets:COMP SCI#帮助额外积分#帮助然后程序从每个字符串的相似元素中说“tweet匹配两次”。
while (1){
   scanf("%s", tweet);
   if (strcmp(tweet, target_tweet == 0){
       pritnf ("Tweet Matched.\n");
       match++;
   }

   if ((tweet[0] == '.')){
       printf("%d tweet(s) matched\n", match); 
      break; //to end the loop
   }
}