注册 登录
编程论坛 C++教室

C++中关于strlen的疑问

拉C 发布于 2010-06-06 20:35, 728 次点击
我们的课本中说strlen是返回源串的有效字符个数,但是不包含结束符,但下面的程序:
#include<string.h>
#include<iostream.h>
void main()
{
    char ss[20];
    strcpy(ss,"hello world!");
    for (int i=strlen(ss)-1;i>=0;i--)
    {
        cout<<ss[i];
    }
    cout<<endl;
}
如果该库函数返回源串的有效字符个数不包含结束符,那红色部分为什么还要减1
2 回复
#2
2010-06-06 21:28
因为数组最大下标为长度减一。
#3
Isilendil2010-06-07 00:05
楼上正解
数组ss的元素,下标从0到19,所以后面的循环条件才是i>=0,输出ss[19]一直到ss[0]
1