字符串长度
strlen("\012")的长度为1,即8进制ASCII码,是换行符'\n'为什么长度不能是3?一个空字符'\0',一个‘1’,一个'2' 转义符,了解一下 wp231957 发表于 2021-3-22 20:41
转义符,了解一下
'\0'也可以是转义符,然后1和2只是字符,为什么这样就不行呢 我觉得应该\之后代表的是转义字符,而不是你理解的这种分割开来,你可以去找一下c99标准
strlen()方法是检测到‘\0’就是字符串的结尾了,讲道理应该是0,而不是1,但是因为统计字符个数的变量在检测到‘\0’后又++了,所以返回1. #include<stdio.h>
#include<string.h>
int main()
{
char a;
while (gets(a))
{
int i,c=0;
for(i=strlen(a)-1;i>=0;i--)
{
if(a!=' ') c++;
if(a==' '&&c!=0) break;
}
printf("%d\n",c);
}
return 0;
} 在内存里就是0xa,0x0.
页:
[1]