字符串中相等标记之间的符号

时间:2013-10-29 20:02:55

标签: c arrays string

我制作的程序在句子中找到相同的单词。 我需要编写程序来计算相等标记之间的符号数量。

我知道如果相等的字符串是单词[2],而单词[5]则会在它们之间变长 的strlen(字[3])+的strlen(字[4])

我的代码:

for (k=0; k<i-1; k++)
{
 for (j=k+1; j<i; j++)
  { 
             if (strcmp(words[k],words[j])==0) 
             {
             printf("equal words are [%s],%d,%d",words[k],k,j);



             break;
             }

但如果我的话就像

     words[k] and words[j]

那我怎么知道它们之间的长度呢?

1 个答案:

答案 0 :(得分:1)

天真的答案是在你有一场比赛后添加另一个for循环:

for (k=0; k<i-1; k++)
{
    for (j=k+1; j<i; j++)
    { 
         if (strcmp(words[k],words[j])==0) 
         {
             int distance = 0;
             for (n=k+1; n < j; n++)
             {
                  distance += strlen(words[n]);
             }

             printf("equal words are [%s],%d,%d,(distance = %d)",words[k],k,j,distance);
             break;
         }
    }  
}

但是,您也可以跟踪当前匹配扫描的长度并避免另一个循环:

for (k=0; k<i-1; k++)
{
    int distance = 0;

    for (j=k+1; j<i; j++)
    { 
         if (strcmp(words[k],words[j])==0) 
         {
             printf("equal words are [%s],%d,%d,(distance = %d)",words[k],k,j,distance);
             break;
         }

         distance += strlen(words[j]);
    }  
}