# include <stdio.h>
# include <string.h>
int main ()
{
int i,len;
char a[102];
memset(a,0,sizeof(a));
scanf("%s",a);
printf("%d\n",strlen(a));
for(i=0;i<=strlen(a);i++)
{
if(a[i]<'a')
{
a[i]=a[i]+32;
}
}
printf("%d\n",strlen(a));
return 0;
}
这段程序中两次的strlen的值不一样 是因为 在for循环中 i<=strlen在这个过程中 改变了数组的最后的‘\0’ 所以造成了数组的越界 这是非常危险的 !!!!! 所以 第一次显示的是正确的值 而第二次显示的正确值加上数组的总值
asdasd
6
104
Process returned 0 (0x0) executi
Press any key to continue.