我有这个简单的程序,我想自己测试它,它基本上从终端字符读取并计算已输入多少个小写字符。
在我调用的函数中,它似乎只是在循环中永远运行。
/*
Create a function that reads the number of lower case letters from the user
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void CopyMe(char []);
main ()
{
char letters [100];
int i = 0;
do
{
letters [i++] = getchar();
}
while (letters [i-1] != '\n');
letters [i-1] = '\0';
CopyMe(letters);
printf("Done \n");
system("pause");
return 0;
}
void CopyMe(char a[])
{
int lowercase = 0;
int i=0;
while ( a[i] != '\0')
{
if (a[i] >= 'a' && a[i] <= 'z')
{
lowercase++;
}
}
printf("Lowercase: %d \n", lowercase);
}
答案 0 :(得分:2)
你忘了增加i变量......
答案 1 :(得分:2)
您永远不会在i
函数中增加CopyMe
,因此while循环永远不会终止,始终处理a[0]
。
答案 2 :(得分:1)
您没有在i
中增加CopyMe
:
void CopyMe(char a[])
{
int lowercase = 0;
int i=0;
while ( a[i] != '\0')
{
if (a[i] >= 'a' && a[i] <= 'z')
{
lowercase++;
}
i++; // <------- Don't forget about meeeeeee!!!
}
printf("Lowercase: %d \n", lowercase);
}