我的任务是计算C字符串中有多少个字符。输入是由我无法访问的测试驱动程序提供的,但我的函数应该访问数据并确定从az和AZ到多少字符,但我的程序一直在失败,我不知道我是什么做错了。
int countLetters(char * const line)
{
char index = *line;
int count;
while(!index)
{
if (index >= 'a' && index <= 'z')
count++;
if (index >= 'A' && index <= 'Z')
count++;
}
return count;
}
答案 0 :(得分:0)
试试这个
int countLetters(char * const line)
{
int index = 0;
int count = 0;
while(line[index])
{
if (line[index] >= 'a' && line[index] <= 'z')
count++;
if (line[index] >= 'A' && line[index] <= 'Z')
count++;
index++;
}
return count;
}
这是你做错了什么
第一个:您指定了char index = * line;
使你的索引成为字符串中的第一个字符,这是错误的,因为索引假设代表位置,而不是字符
第二:你没有提供任何增加索引的机制来循环字符串
第三:你没有初始化你的计数变量
注意:
line[index]
与*(line + index)
相同 你的line
是一个指针,指向字符串
中的第一个字符 所以line + index
是指向字符串
中的索引第n个字符的指针 通过在前面添加一个带有*的指针,你说我想知道这个指针指向的内容