C语言中测试字符串长度的函数
正确的答案是5,题目选项有误。
首先strlen()函数返回的长度是不包含'\0',
第一个字符为:a
第二个字符为:b
第三个字符为:
(换行符)
第四个字符为:2
第五个字符为:\ (\\转义为\)
所以答案为5。
(下图为实际代码演示)
扩展内容:
strlen()函数(C语言函数):
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。
参考资料:strlen函数 - 百科
C语言中,计算字符串长度的函数为strlen。
1 形式:
int strlen(const char *s);
2 头文件:
string.h
3 功能:
计算字符串s的长度,并返回。
C语言中测试字符串长度的函数是strlen()
函数原型:
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[] = "abcxyz";
printf("strlen(str)=%d
", strlen(str1));
return 0;
}
//输出结果:strlen(str)=6
下面是改好的程序,你仔细看一下:
#include <stdio.h>
main()
{
int a=0;
char c;
printf("请输入一段英文字母:");
while((c=getche()) != '\r')
{
if(c&&('A'<=c&&c<='z'))
a++;
}
printf("您输入了%d个字符",a);
}
这是因为你的判断条件错了啊!
这里啊if(c&&('a'<='z'&&'A'<='Z'))你把它改成if(c&&('A'<=c&&c<='z'))就行了。因为你这里你是要统计字母的数量。而你输入的即有字母又有数字,这时你就要用if语句判断。当是字母时你才计数。要统计字母只要满足上述条件就行(即if(c&&('A'<=c&&c<='z')))。它表示当c不为空且当c为>='A'且为<='z'时(即c为字母),则i++。即统计它的数量。而你的呢是if(c&&('a'<='z'&&'A'<='Z'))它只要c不为空就可以满足条件了且你的条件c&&('a'<='z'&&'A'<='Z'))后半部分('a'<='z'&&'A'<='Z'))返回值永远都是真,因为a和A永远都比z和Z小呀。前半部分的c是你输入的值,如果不是输入了0对应的ascii码值48,那也永远是真,所以a条件总是成立,a总是++;结果当然就会不对了。你是判断条件错了啊。稍微改一下就行了。
你的if中的条件写的有问题,应改为
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
这样说明只有你输入的是字母时,a的值才执行++操作。而你的条件c&&('a'<='z'&&'A'<='Z'))后半部分('a'<='z'&&'A'<='Z'))返回值永远都是真,因为a和A永远都比z和Z小呀。前半部分的c是你输入的值,如果不是输入了0对应的ascii码值48,那也永远是真,所以a条件总是成立,a总是++;结果当然就会不对了
改成这样吧:
#include <stdio.h>
int main()
{
int a=0;
char c;
printf("请输入一段英文字母:");
while((c=getche()) != '\r')
{
if(c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')
a++;
}
printf("\n您输入了%d个字符\n",a);
}
你的if中的条件写的有问题,应改为
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
这样说明只有你输入的是字母时,a的值才执行++操作。而你的条件c&&('a'<='z'&&'A'<='Z'))后半部分('a'<='z'&&'A'<='Z'))返回值永远都是真,因为a和A永远都比z和Z小呀。前半部分的c是你输入的值,如果不是输入了0对应的ascii码值48,那也永远是真,所以a条件总是成立,a总是++;结果当然就会不对了
怎么判断字符串长度是否是10
当char * m=new char[TOKEN_LENGTH]后,虽然为指针分配了地址,但是其指向的内容未被初始化,所以m指向的内容是未知的,可能在第24个字符的位置发现了\\0所以strlen()显示长度为24。数据类型 字符串数据类型是建模在形式字符串的想法上的数据类型。字符串是几乎在所有编程语言中可以实现的非常重要和有...
c语言中如何判断字符串长度 比如strlen(“\\t\\"065\\xff\\n”)应该输出...
人工判断 那么 \\t 是 tab \\" 是 "的转移字符 0 6 5 不变 \\xff这个是 16进制ascii码 \\n 是一个 一共七个
c语言中人工查字符串的长度注意哪些,如"abcd\\n\\\\ 12\\0\\"
另外就是注意\\开头的转义字符了,这个字符串中的字符有:1.a 2.b 3.c 4.d 5.\\n 6.\\\\ 这是一个字符 7._空格 8.1 9.2 10.\\0 11.\\ 12.\\0 如果问strlen("abcd\\n\\\\ 12\\0\\")的结果,那么是9.strlen返回的是第一个\\0之前的字符个数 如果问这个字符串占的内存中的字节数,那么...
C语言:写一个函数,求一个字符串的长度.在main函数中输入字符串并输出其...
include<iostream> using namespace std;int main(){ int character(char *a);char a[20];int length;cout<<"请输入一个字符串:"<<endl;cin>>a;length=character(a);cout<<"字符串长度为:"<<length<<endl;return 0;}
c语言中,计算字符串长度的程序?
include<stdio.h> include<string.h> void main(){ char a[100];int i= 0;printf("input string\\n");gets(a);while(a[i] != '\\0')i++;printf("你输入的字符串的长度为%d\\n",i);} 运行结果 input string abcdefgh 你输入的字符串的长度为8 Press any key to continue ...
c语言 计算字符串长度
C语言的字符串是由字符数组形式保存的,并约定'\\0'(ascii码值为0)作为字符串结束符。其长度为从字符串开始,到'\\0'结束,所有字符的个数,不包括'\\0'本身。要获得字符串长度,有两种方法可以使用,使用库函数strlen()。strlen声明在string.h中,原型为int strlen(char *str);功能为求str的长度...
strlen()函数是什么意思?
strlen(char *)作用:检测字符串实际长度。如:char s[]="1234567";int a=strlen(s);\/\/a=7 实际上strlen(char *)检测的是'\\0',strlen(char *)碰到'\\0'就返回'\\0'以前的字符数。又如:char f[]="123456\\01111";int b=strlen(f);\/\/b=6,因为遇到了'\\0'...
c语言strlen判断字符长度的问题
include<stdio.h> include<string.h> main(){ int b,i;char a[4];scanf("%s",a);b=strlen(a);printf("您输入的字符长度为:%d\\n",b);} 试试这样的,你要是一个字符一个字符的输入,if (a[i]=='\\n')就没意义了。
PB中测量字符串长度的语句怎么写
PB中测量字符串长度的语句:len(字符串变量)。字符串函数:字符串函数(String processing function)也成字符串处理函数,指的是编程语言中用来进行字符串处理的函数,如C,pascal,Visual以及LotusScript中进行字符串拷贝,计算长度,字符查找等的函数。
C语言中怎样计算字符串的长度,举例说明下
运行 一下 代码 你一看就知道了,很好理解 include <stdio.h> include <string.h> int main(){ char str[] = "12\\x44\\\\abcd\\101b";int len = strlen(str), i = 0;for (; str[i]; i++)printf("[%c]",str[i]);printf("\\n");printf("D's ASCII is %x\\n",'D');printf...
福阅力百: int strlenOwn(const char* psz) /*const使得字符数组不被修改*/ {int len=0;while( *(psz++) ) //psz加啊加啊最后指到了字符串的最后一个的后面,检测到了"\0"len++; //(接上)于是乎while检测为false(即检测到0),字符串长len就算出来了return len; }这里面psz++是指针的位移操作,移动指向位置的,字符串常量对于c语言来说就是一种数组嘛 而括号外面的“ * ”是解引用符号,其实意思就是取指针当前位置的值,而不是它的地址.
昆都仑区19857248564: C语言 : 编写一函数,用于计算字符串的长度. - ?
福阅力百: 第一个横线应该是输入的终止标志,可能是读入某个字符后终止读入,但你题目中没给出来. 第二个横线应该填i=i+1
昆都仑区19857248564: C语言:写一个函数,求一个字符串的长度.在main函数中输入字符串并输出其长度 - ?
福阅力百: #include<iostream> using namespace std; int main() { int character(char *a); char a[20]; int length; cout<<"请输入一个字符串:"<<endl; cin>>a; length=character(a); cout<<"字符串长度为:"<<length<<endl; return 0; } 扩展资料: return用...
昆都仑区19857248564: c语言 编写函数strlen,用来测试指定字符串的长度! - ?
福阅力百: #pragma hdrstop//--------------------------------------------------------------------------- #include<stdio.h> #pragma argsused int main(int argc, char* argv[]) {int strllen(char *str);int len;char pztr[100];scanf("%s",pztr);len = strllen(pztr);printf("strlen = %d\...
昆都仑区19857248564: 我碰到C语言中一个问题,就是用strlen测定字符串的长度,函数定义如下: - ?
福阅力百: *p是char(字符型)指针变量 先将*p的地址*(字符串的第一个字符)赋给s,然后执行while循环,*p所指地址改变为最后一个字符的地址,p-s就是*p最后的地址减去最初的地址,得到的就是字符串的长度了.逐字解释下你的程序 #include <...
昆都仑区19857248564: C语言:编写函数,统计一个字符串的长度 - ?
福阅力百: #include<stdio.h> int strl(char *s) //你需要的函数. { int i,k=0; for(i=0;s[i];i++)k++; return k; } void main() //主函数,目的是测试下前面的函数. { printf("%d\n",strl("abcd")); }
昆都仑区19857248564: 如何在c语言中计算字符串长度 - ?
福阅力百: C语言计算字符串长度,可以手动计算也可以使用库函数或者sizeof()操作符.方法: 1. 自定义函数求长度 2. 使用strlen()函数 3. 使用sizeof()操作符 自定义函数: int cont_str(char *s) { int i = 0; while ( str[i++] != '\0') ; return i; } 使用...
昆都仑区19857248564: (C语言)指针习题:编写测字符串长度函数strlen()? - ?
福阅力百: 函数如下:int mystrlen(char *p){ int len=0; char *q=p; while(*q)len++; return len; } 有什么问题请留言.
昆都仑区19857248564: C语言写了一个小程序,统计输入字符串长度的.函数调用不太会,请大侠帮忙调试一下 - ?
福阅力百: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20#include<stdio.h>//头文件只需要这个intstrll(char*str ); //函数名字不能用strlen否则不会出结果的 strlen是内置函数intmain() {char*astr;//应该为指针astr = "abc";strll(astr); //指针直接过...
昆都仑区19857248564: c语言中,计算字符串长度的程序? - ?
福阅力百: 函数是 strlen 要包含 头文件 string.h 使用方法 int nLen; char str[]="hello world!"; nLen = strlen(str); nLen 就是字符串str的长度啦