我在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。