检测某些字符块
inputData[] = {Zw~~"}
;检测某些字符块
为什么不能使用此代码?
if (inputData[ii] == '~' && inputData[ii + 1] == '~')
我要检测的~~一些如何
void readInputDataForDecryption(void)
{
int i, ii;
ii = 0;
int counter = 0;
for (i = startIndexForData; i < characterCounter; i++, ii++)
{
counter++;
inputData[ii] = inputLine[i];
if (inputData[ii] == '~' && inputData[ii + 1] == '~')
{
printf("ii: %d\n", ii);
printf("found ~~\n");
}
dataCharCount++;
}
}
因为你想读从什么地方你还没有把数据尚未数据它不工作。
inputData[ii] = inputLine[i]; // You've initialized inputData[ii]
if (inputData[ii] == '~' && inputData[ii + 1] == '~') // nothing in inputData[ii + 1] yet.
反向支票(不检查,直到二是至少在第二次迭代):
if (inputData[ii] == '~' && inputData[ii - 1] == '~') // Note change from + to -
- 我没有看到任何地方
startIndexForData
初始化。 - 我没有看到
chracterCounter
在任何地方初始化。 - 您既指
inputData
又指inputLine
,但尚未定义任何一个。 - 您可以参考
dataCharCount
,但不会告诉我们任何关于它的事情。 -
counter
被初始化,并增加,但从未使用过。那是什么?
鉴于所有这些问题,很难正确分析您的代码。
也许这就是问题的根源呢?
这不是一个答案。这是一条评论。 – 2011-03-19 22:11:43
@Ken:我不同意。我指出了这个问题的多种可能原因,尤其是因为他说代码不起作用,没有描述它是如何失败的,以及他期望某些关键变量是什么。如果他修复了我描述的问题,他可能会有工作代码,这是一个解决方案。 – abelenky 2011-03-19 22:13:53
很明显,这些变量是全局的,因为它们没有在函数中声明。多余的“计数器”增量绝对不会,但你提到它。您所指出的任何内容都与发布的代码无关(无论如何,就您所见),并且您没有提供任何有助于解决问题的信息。这个答案如何? – 2011-03-19 22:22:18
我认为你需要改变
for (i = startIndexForData; i < characterCounter; i++, ii++)
到
for (i = ii = startIndexForData; i < characterCounter; i++, ii++)
除此之外,作为abelenky提到,你的代码是不是很完整 - 这可能是问题的一个来源或不是(具体取决于发布之前你已经遗漏了多少)
看起来你错过了一些代码在开始 – 2011-03-19 22:04:20
这只是从我的程序中取出的一大块代码 – foo 2011-03-19 22:05:34
不是你的答案,但计数器和ii似乎在整个功能期间保持完全相同的值...为什么这种冗余?在访问inputData [ii + 1]时还要注意,这是可行的,因为'\ 0'会保证你的安全,但是如果你使用inputData [ii + 2],那么你的读数就超出了界限。 – Ptival 2011-03-19 22:08:53