即使不满足条件,整数也会输出1

时间:2020-09-07 16:21:51

标签: c integer

我在C语言中编写了一个小程序,试图计算输入的句子。

string input = get_string("Text:\n");
int s = strlen(input);

strlen给我输入字符串的长度。

我的想法是根据字符!,?的出现来计数句子或。

int h = 0;
for (int i = 0; i < s*2; i++)
{
    if (input[i] == 33) //input[i] == 46)// || input[i] == 63)
    {
        h++;
    }

}
printf("Sentences: %d\n", h);

33是!的整数表示。在ascii表中。 但是,当我输入大于s = 12的句子时,即使没有!,h也会始终增加到1。在文字里面。 例如:jsfsfjffjjjj(s = 13)将输出h = 1,但没有!在字符串中。 jsfsfjffj(s = 9)将输出h = 0。

我不明白为什么会这样。我试过使用调试器,调试器只计算26次迭代,一旦到达最后一行(printf),就会神秘地输出h = 1。

0 个答案:

没有答案