我制作的程序在句子中找到相同的单词。 我需要编写程序来计算相等标记之间的符号数量。
我知道如果相等的字符串是单词[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]
那我怎么知道它们之间的长度呢?
答案 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]);
}
}