1. c语言,输入字符串计算字符长度
你的代码出现问题的原因是scanf("%s",&a);
,a是一个char类型的变量,系统为它分配了一个字节的内存空间,但是你却输入了一个字符串到以a的地址为首地址的一段连续的内存空间里,这样就出现了越界错误.但是printf函数并不检查越界错误,它会按正常的方法执行,然后程序统计出长度,打印出来结果.但是返回到调用main函数的操作系统后,系统会发现越界错误,所以在结果显示出来后才出错.至于你说的输入5个以下不会出错,也许是偶然,也许跟你的编译器有关.我用VS2005测试,只要输入就会出错。
如果你是只想求出输入的字符串的长度而不要求保存输入的字符串,下面的代码更好。你的标准输入缓冲区有多大,那么它就可以求出多长的字符串的长度,不会有越界。
#include
int
main()
{
int
len=0;
//getchar()函数从标准输入设备(即键盘)接收一个字符,返回该字符的ASCII码.因为回车被输入时被转换成换行符(LF,ASCII码为10),所以getchar()返回10时就知道输入结束了.
while(getchar()!=10)
len++;
printf("It's
length
is
%d.\n",len);
return
0;
}
2. c语言求字符串的长度 char *s="\xab\107\\A\""怎么求
字符串长度 指的是从第一个字符,到第一个\0中的字符个数.
对于"\xab\107\\A\"" 包含字符有
\xab
\107
\\
A
\"
外加隐藏的结束符\0, 所以字符串长度为5
除了A, 剩余四个都是转义字符.
3. c语言求字符串长度
C语言中字符串长度的函数是strlen(),一个字符的长度为1;
函数原型:
unsigned int strlen (char *s);头文件:
#include <string.h>参数说明:s为指定的字符串;
功能说明:strlen()用来计算指定的字符串s 的长度,不包括结束字符'\0';
返回值:返回字符串s 的字符数;
注意:strlen() 函数计算的是字符串的实际长度,遇到第一个'\0'结束。
示例:
#include<stdio.h>#include<string.h>int main(){ char str[] = "ab\nxyz";//\n为回车字符,占一个字节 printf("strlen(str)=%d\n", strlen(str)); return 0;}//输出结果:strlen(str)=6 收起
4. C语言题目,输入一个字符串,计算其有效长度。
#include "stdio.h"
int main()
{
char a[100]={0};
int i,sum=0;
printf("Sample Input:\n");
gets(a);
for(i=0;a[i]!='\0';i++)
sum++;
printf("Sample Output:\n");
printf("%d %s",sum,a);
}
5. C语言计算字符串长度
\t\v\129\\\xdf\0will\'\n第一个\t,表示水平制表符第二个\v,表示垂直制表符第三个\129,表示八进制数129第四个\\,表示\第五个\xdf,表示十六进制数df第六个\0,表示字符串结尾遇到字符串结尾符\0,字符串结束
6. c语言编程题:写一个函数,求一个字符串的长度。
#include "stdio.h"
int getLength(char *p)
{
int length=0;
for(;*p!='\0';p++)
length++;
return length;
}
int main()
{
char a[80]={0};
printf("请输入一个字符串:");
gets(a);
printf("输入字符串的长度为:%d\n",getLength(a));
return 0;
}
7. c语言 计算字符串长度
C语言的字符串是由字符数组形式保存的,并约定'