关于c语言字符串长度的问题,c语言字符串长度定义(C语言获取字符串长度的几种方法)

本文目录一览:

  • 1、C语言 字符串长度
  • 2、c语言字符串长度怎么看
  • 3、c语言字符串长度问题
  • 4、C语言求字符串长度的问题
  • 5、如何在c语言中计算字符串长度
  • 6、C语言字符串长度问题

C语言 字符串长度

这个字符串长度为10个字符。

你可以用strlen(“ab’1’\12803”)来求这个字符串的长度。

也可以用sizeof(“ab’1’\12803”)来求,但是这个求出的结果是多了一个字符串结束符。

你可以试着输出这个字符串看看是不是10个字符。

实际上,这10个字符分别为:

1、a

2、b

3、’

4、1

5、’

6、\(\表示:前一个表示这是一个转义字符,后一个才是字符串中的真实字符)

7、12(同上,表示这是一个转义字符,其后面的1~3个数字位是一个八进制数,在这里,第3个数字为8,所以它不是这个八进制数的一部分,即这个八进制数应该是12,转换为10进制数即为10,对应的ASCII码为一个换行符)

8、8

9、0

10、3

注:用来说明一个转义字符,如\表示反斜杠字符“”,ddd表示1~3位八进制数所代表的字符(ASCII码),xhh表示1~2位十六进制数所代表的字符。

c语言字符串的长度怎么看

C语言的字符串是由字符数组形式保存的,并约定”(ascii码值为0)作为字符串结束符。

其长度为从字符串开始,到”结束,所有字符的个数,不包括”本身。

要获得字符串长度,有两种方法可以使用:

1

使用库函数strlen()。

strlen声明在string.h中,原型为

int

strlen(char

*str);

功能为求str的长度,并返回。

2

根据定义求长度。

对于字符串str,

可以用如下代码求长度:

int

len;

for(len

=

0;

;

len

++)

if(str[len]

==

”)break;

当str[len]为0时,退出循环,退出后的len值就是str的长度。

c语言字符串长度问题

可以啊 都可以达到效果啊 !

难道,你测试第二个不行吗??

C语言求字符串长度的问题

你的代码出现问题的原因是scanf(“%s”,a);,a是一个char类型的变量,系统为它分配了一个字节的内存空间,但是你却输入了一个字符串到以a的地址为首地址的一段连续的内存空间里,这样就出现了越界错误.但是printf函数并不检查越界错误,它会按正常的方法执行,然后程序统计出长度,打印出来结果.但是返回到调用main函数的操作系统后,系统会发现越界错误,所以在结果显示出来后才出错.至于你说的输入5个以下不会出错,也许是偶然,也许跟你的编译器有关.我用VS2005测试,只要输入就会出错。

如果你是只想求出输入的字符串的长度而不要求保存输入的字符串,下面的代码更好。你的标准输入缓冲区有多大,那么它就可以求出多长的字符串的长度,不会有越界。

#includestdio.h

intmain()

{

intlen=0;

//getchar()函数从标准输入设备(即键盘)接收一个字符,返回该字符的ASCII码.因为回车被输入时被转换成换行符(LF,ASCII码为10),所以getchar()返回10时就知道输入结束了.

while(getchar()!=10)len++;

printf(“It’slengthis%d.n”,len);

return0;

}

如何在c语言中计算字符串长度

C语言计算字符串长度,可以手动计算也可以使用库函数或者sizeof()操作符。

方法:

自定义函数求长度

使用strlen()函数

使用sizeof()操作符

自定义函数:

int cont_str(char *s)

{

int i = 0;    

while ( str[i++] != ”)   ;

return i;

}

使用string头文件中的strlen()函数:

strlen(str); //假设str为待求的字符串数组名

使用sizeof()操作符:

sizeof(str)/sizeof(str[0]); //假设str为待求的字符串数组名

注意:

strlen()函数求出的字符串长度为有效长度,既不包含字符串末尾结束符 ‘’;

sizeof()操作符求出的长度包含字符串末尾的结束符 ‘’;

当在函数内部使用sizeof()求解由函数的形参传入的字符数组的长度时,得到的结果为指针的长度,既对应变量的字节数,而不是字符串的长度,此处一定要小心。

C语言字符串长度问题

“ab34\x79″中34是八进制表示的一个ASCII码制表符,\表示输出一个”,x79表示的十六进制ASCII码的’y’,所以输出是”ab┗y”,长度为5,a45

045`b中45是八进制表示的一个ASCII码数字5,后面空格是一个字符,045占三个字符`输出的是`,所以输出”a5

045`b”,长度为8

Published by

风君子

独自遨游何稽首 揭天掀地慰生平