gpt4 book ai didi

c - 如何在 C 中解决此输出?

转载 作者:太空狗 更新时间:2023-10-29 17:13:18 25 4
gpt4 key购买 nike

我必须在字符串中搜索子字符串并在每次找到子字符串时显示完整的单词,如下所示-

例如:

Input: excellent
Output: excellent,excellently

我不知道如何使输出像上面那样。

我的输出:

excellent,excellently,

它总是在最后给我一个逗号。

程序:描述迭代地将字典中的每个单词转换为小写,并将转换后的单词存储在lower中。使用 strncmp 比较 input_str 和 lower 的前 len 个字符。如果strncmp的返回值为0,则表示前len个字符两个字符串的相同。

void complete(char *input_str)
{
int len = strlen(input_str);
int i, j, found;
char lower[30];
found = 0;

for(i=0;i<n_words;i++)
{
for(j=0;j<strlen(dictionary[i]);j++)
{
lower[j] = tolower(dictionary[i][j]);

}
lower[j+1]='\0';
found=strncmp(input_str,lower,len);

if(found==0)//found the string n print out
{
printf("%s",dictionary[i]);
printf(",");
}
}

if (!found) {
printf("None.\n");
} else {
printf("\n");
}
}

最佳答案

在打印第二个单词之前检查您是否已经打印了一个单词:

char printed = 0;
for (i=0; i < n_words; i++)
{
for(j = 0; j < strlen(dictionary[i]); j++)
lower[j] = tolower(dictionary[i][j]);
lower[j + 1] = '\0';
found = strncmp(input_str, lower, len);

if (found == 0)//found the string n print out
{
if (printed)
printf(",");
printf("%s", dictionary[i]);
printed = 1;
}
}

关于c - 如何在 C 中解决此输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19786621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com