本文目录
- strlen函数使用
- 关于strlen
- C语言中strlen函数是怎么计数的
- 关于strlen用法
- strlen()的用法
- C语言中strlen()函数的意思
- strlen的概述
- strlen(“China\n“)的值是多少
strlen函数使用
printf输出结果:9
strlen考察点有两个,一是转义字符,一是计算字符’\0’之前的字符个数。
“abcd\n123\xab“
abcd是4个字符
\n是转义字符,算1个字符
123是3个字符
\xab是转义字符,算1个字符
所以strlen(str) = 4 + 1 + 3 + 1 = 9
关于strlen
1.因为你的赋值的字符串超过了你这个字符串变量的范围,所以没有加入字符串的结束符号’\0’,而strlen是判断字符串首地址到第一个字符串结束符之间的长度,于是就会读取a以后部分的数据,要注意,这样的程序不能出现,因为a后面的内存部分是别的程序使用的,如果你对a操作的时候修改了后面的内存数据,那么会让原本使用后面内存数据的程序出错(可能是你别的windows程序)一下我定义了2个超过界限的字符串,你可以看出他们的长度是不同的,那是因为原来后面的内存中的数据是不同的,所以起始地址到第一个结束符的长度也是不同的,并不是因为你用的编译器的问题#include 《stdio.h》main(){ char a=“abcde“; char b=“abcde“; int alen,i; alen=strlen(a); printf(“%d\n“,alen);//a的字符串长度 for(i=0;i《alen;i++) printf(“%c\n“,*(a+i));//a的每个字符元素 printf(“%d\n\n“,a);//a的首地址 alen=strlen(b); printf(“%d\n“,alen);//b的字符串长度 for(i=0;i《alen;i++)//b的每个字符元素 printf(“%c\n“,*(b+i));//b的首地址 printf(“%d“,b); system(“pause“);}2.是能够输出的,和你上面那题一样性质,只是gets在超过部分还附加了一个\0符号,puts是从该字符串首地址开始输出到第一个结束符号,所以和上面那题一样只不过超过访问范围而已,如果你上面那题中,我的那段显示后面字符的程序就等同于puts的功能#include 《stdio.h》#include 《string.h》main(){ char a; int alen,i; gets(a); puts(a); alen=strlen(a); printf(“%d\n“,alen);//a的字符串长度 for(i=0;i《alen;i++) printf(“%c\n“,*(a+i));//a的每个字符元素 printf(“%d\n\n“,a);//a的首地址 printf(“%d“,sizeof(a));//a的大小 system(“pause“);} 如果你想存放5个学生3门课程的成绩,那么就数组而言的话,定义score最合适,因为成绩数组肯定是int或者double或者float类型的,就不存在字符串数组这种结束符的情况了,不过最好的话,还是定义一个结构体,譬如struct student{ float chinese; float math; float english;}然后构造一个结构体数组struct student std;这样更为鲜明
C语言中strlen函数是怎么计数的
char str=“\tab\n\012\\\““
字符1: \t 转义字符:水平制表符 ,其ASCII 值9(十进制)
字符2、3:ab
字符4:\n 转义字符,换行符,其ASCII 值10(十进制)
字符5:\012 转义字符,其中012是8进制数,其ASCII值 同\n.
字符6:\\ 转义字符 反斜杠\,其ASCII值 92(十进制)
字符7:\“ 转义字符 双引号“,其ASCII值 34(十进制)
2. printf(“%d \n“, strlen(“IBM\n012\1\\“));
字符1、2、3: IBM
字符4:\n 转义字符
字符5、6、7:012
字符8:\1 其ASCII值 1(8进制).
字符9:\\ 转义字符 反斜杠\,其ASCII值 92(十进制)
3. printf(“%d \n“,strlen(“\t\“\065\xff\n“));
字符1: \t 转义字符:水平制表符 ,其ASCII 值9(十进制)
字符2:\“ 转义字符 双引号“,其ASCII值 34(十进制)
字符3:\065 ,代表字符5,其中065为8进制 格式,其ASCII为53(十进制)
字符4:\xff (这个我不知道怎么解释,请其它老师帮助解释)
字符5:\n
4. printf(“%d \n“,strlen(“stop\0\n\““));
字符1、2、3、4:stop
因为strlen()函数遇到\0 就结束了,后面的字符就不去判断了。
C语言中的字符串 是用\0作为 结束符。
希望我的解答 对你有所帮助,很高兴和你一起讨论和学习C语言。
关于strlen用法
strlen得到字符串长度时不包括’\0’在内,因为’\0’表示字符串结束,而且不包括在字符串内,因此一个数组末尾可能有很多’\0’。至于“strlen(SystemPath) - 1; // 这边为什么要减去1”是为了后面使用,因为C、C++等大多数语言的数组都是从零索引开始的。不过这样写的确不好,不如:int len = strlen(SystemPath) ; //这才是实际长度if ( SystemPath[len-1] != ’\\’)//判断末尾是否有’\’,若没有则添加strcat(SystemPath, “\\“);
strlen()的用法
不能,strlen只能计算字符串的长度 原型:externunsignedintstrlen(char*s); 用法:#include《string.h》 功能:计算字符串s的(unsignedint型)长度 说明:返回s的长度,不包括结束符NULL。 举例: //strlen.c #include《syslib.h》 #include《string.h》 main() { char*s=“GoldenGlobalView“; clrscr(); printf(“%shas%dchars“,s,strlen(s)); getchar(); return0; }
C语言中strlen()函数的意思
strlen()是读取字符串长度的意思,举例如下char a={’a’,’b’,’c’};return strlen(a);返回字符串a的长度,是3。需要注意的是,strlen()函数需要《string.h》的头文件。如有疑问请您追问。
strlen的概述
strlen() 函数用于计算字符串的长度。让我们算出字符串 Hello world! 的长度:《?phpecho strlen(Hello world!);?》以上代码的输出:12字符串的长度信息常常用在循环或其他函数中,因为那时确定字符串何时结束是很重要的(例如,在循环中,我们需要在字符串中的最后一个字符之后结束循环)。
strlen(“China\n“)的值是多少
strlen是计算字符串长度,不包括字符串结束符,该问题主要是’\n’的问题,’\n’不是字符串结束符,那么就会在计算内,且’\n’为转义字符,为单个字符,所以strlen(’China\n’)结束为6。strlen是求字符串长度的函数。函数原型:unsigned int strlen(char *s);参数:s是char类型的指针,指向要求长度的字符串返回值:返回字符串的长度,返回类型是无符号整型注意:strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含“\0”)。实例:#include《string.h》#include《stdio.h》int main(void){char*s=“GoldenGlobalView“;printf(“%s has %d chars“,s,strlen(s));getchar();return 0;}