在键入了m之后,你又输入了回车,这个回车会被后面的循环语句里的回车判断语句接受,然后直接结束循环,一个字符也没有读入,可以选择在输入m后,直接输入字符串,或者把循环改为 scanf("%s",str);直接读入一个字符串str然后用i = strlen(str); 可以获得字符串的长度