【发布时间】:2021-06-28 07:00:39
【问题描述】:
我想知道为什么我的重复检查给了我错误的输出。这个想法是建立一个嵌套循环,将数组中的每个后续字母与初始循环的字母进行比较。但是,如果我打印结果,该函数会在 A = K 时返回 true,例如我不明白这种行为。谁能解释这里发生了什么?
for (int n = 0; n < strlen(argv[1]) ; n++)
{
for (int i = 0; i < strlen(argv[1]) ; i++)
{
if (argv[1][n] == argv[1][i + 1])
{
printf("argv[1][n] = %c\n", argv[1][n]);
printf("argv[1][i] = %c\n", argv[1][i]);
printf("Error.\n");
return 0;
}
}
}
【问题讨论】:
-
“函数在 A = K 时返回 true”是什么意思?什么“功能”?什么是“真”?请尝试创建一个适当的minimal reproducible example 向我们展示并告诉我们您提供的输入以及预期和实际输出。
-
也许您还应该花一些时间来刷新 SO tour、阅读 How to Ask 以及 this question checklist。
-
应该是
if (argv[1][n] == argv[1][i])。此外,i应该以int i=n+1开头
标签: c for-loop duplicates string-comparison c-strings