Visual C++~~帮我注释一下这个代码吧,很短!

来源:百度知道 编辑:UC知道 时间:2024/06/07 23:56:09
编写一个函数,统计一个英文句子中字母的个数,在主程序中实现输入输出。
#include <iostream.h>
#include <stdio.h>

int count(char *str)
{
int i,num=0;
for (i=0; str[i]; i++)
{
if ( (str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z') )//这句是什么意思
num++;
}
return num;
}

void main()
{
char text[100];
cout << "输入一个英语句子:" << endl;
gets(text);
cout << "这个句子里有" << count(text) << "个字母。" << endl;
}

指针变量str用来做什么,为什么*str和字符数组str[i]同名? 反正越详细越好,谢谢了~~
还是不怎么明白,可否讲一下,在主函数中是怎么实现的啊

if ( (str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z') )
这句话是判断str[]数组里的字符是否在a-z A-Z之间 函数功能是判读是字母并记录

str是一个字符指针 指向字符串首地址的指针 str[0]就是str的地址 数组名在内存中是以地址方式寻址

在主函数里面讲text数组的地址 传给count函数 之后就是统计字母数 输出!!!

if ( (str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z') )//判断str[i]是不是英文字母,即若字符的accii码,在a--z或A--Z之间,当然是字母了
char *str就相当于char str[](只是相当于,其实还是有区别,数组的str是常量,而指针的str是变量),你将char str[]替换char *str,结果也是一样,这样你不就容易理解了!
其实str是指向char型的指针,所以*(str+i)就是str[i],即指针str向后移了i字符

if ( (str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z') )是判断str[i]是不是英文字母
*str是代表字符数组指针当前位置的字符
假设初始化时char *str = s[100];那么*str就是s[0]
如果str++了,那就是指针向后移了一个字符,*str就是s[1]了