我编写了一个程序,可以在句子中找到相同的单词。 我需要编写程序来计算相等标记之间有多少符号。
我知道如果相等的字符串是单词[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]
那我怎么知道它们之间的长度呢?
最佳答案
天真的答案是在获得匹配项后添加另一个 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]);
}
}
关于c - 字符串中相等标记之间的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667991/