c语言编程 编写求字符串长度的函数int strlen(char*s),在主函数中调用该函数输出指定字符串的长度
代码:#include<stdio.h>int mystrlen(char*str){int size=0;if(NULL==str)return-1;while(*str){size++;str++;}return size;}int main(int argc,const char*argv[]){char str[1024];printf("please input string:");gets(str);printf("mystrlen=%d ",mystrlen(str));return 0;}方法二、int Strlen(char*s){int i;for(i=0;*s!="";s++)//计算字符串串长(不用strlen)i++;return i;}//返回值为累加的iint main(){char a[100],*s;int n;printf("Enter a string:");scanf("%s",a);n=Strlen(a);printf("该字符串串长为:%d ",n);return 0;}扩展资料:C语言strlen()函数用法头文件:#include<string.h>strlen()函数用来计算字符串的长度,其原型为:unsigned int strlen(char*s);s为指定的字符串eg:#include<stdio.h>#include<string.h>int main(){char*str1="http://see.xidian.edu.cn/cpp/u/shipin/";char str2[100]="http://see.xidian.edu.cn/cpp/u/shipin_liming/";char str3[5]="12345";printf("strlen(str1)=%d,sizeof(str1)=%d ",strlen(str1),sizeof(str1));printf("strlen(str2)=%d,sizeof(str2)=%d ",strlen(str2),sizeof(str2));printf("strlen(str3)=%d,sizeof(str3)=%d ",strlen(str3),sizeof(str3));return 0;}运行结果:strlen(str1)=38,sizeof(str1)=4strlen(str1)=45,sizeof(str1)=100strlen(str1)=53,sizeof(str1)=5
编C语言程序:用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和strlwr的功能
呵呵!昨天刚答过,不会是作业吧!http://zhidao.baidu.com/question/7908569.htmlvoid strlwr(char s[]){int i;for(i=0;s!="";i++) if(s>="A"&&s<="Z")s=s+32;}
C语言编程:用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和
void strcat(char s1[],char s2[]){int i,j; for(i=0;s1[i]!="";i++); for(j=0;s2[j]!="";j++) s1[i++]=s2[j]; s1[i]="";}void strcpy(char a[],char b[]){ int i=0,j=0; while((a[i++]=b[j++])!="");}int strcmp(char s1[],char s2[]){int i;for(i=0;s1[i]!=""&&s2[i]!="";i++){ if(s1[i]>s2[i]) return 1; else if(s1[i]<s2[i]) return -1;}if(s1[i]==""&&s2[i]=="") return 0;else if(s1[i]=="") return -1;else return 1;}int strlen(char s[]){ int len=0 ,i; for(i=0;s[i]!="";i++) len++;return len;}
c语言中p2=str+strlen(str)-1是什么意思
1、这里str是字符串数组名,这里当指针用;strlen(str)-1是求出字符串str的长度再-1,其值就将长度变成了下标值。2、str+strlen(str)-1就求出了字符串数组最后一个有效位(""前面的那个)的地址;p2=str+strlen(str)-1就是把这最后一位的地址(指针)赋给指针p2。换句话说,就是让指针p2指向字符串str的最后一个有效字符。
为什么strlen("ats o121\")的输出结果是9?
1 答案是92 分析strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符""为止,然后返回计数器值(长度不包含"")。 ats 普通3个 转义字符1个(代表换行符) o12 普通字符3个 1 转义字符1个(代表标题开始符(SOH),是一个控制字符) \ 转义字符1个(代表"")
C语言数组问题strlen怎么用
strlen() 是求字符串的长度,它返回字符串的长度。sizeof()是计算数据所占的字节数,返回数据空间的大小。
C语言。。strlen怎么打印字符串的长度
#include <string.h>#include<stdio.h>int main(void){ char *s="Golden Global View"; printf("%s has %d chars",s,strlen(s)); getchar(); return 0;}
C语言为什么strlen的结果是3?
strlen的参数是字符串指针,不是字符串。指针长度是4个字节,一个字节算一个字,strlen刚好不包含"",结果就是3。只算前三字节。
strlen函数 C语言
for版本:int Strlen(const char * const s){ int i; for (i = 0; s[i]; i++) ; return i;}完整的示例程序://---------------------------------------------------------------------------#include <stdio.h>int Strlen(const char * const s){ int i; for (i = 0; s[i]; i++) ; return i;}int main(void){ char ca[]="ABCDE"; printf("%d",Strlen(ca));/*调用示例,输出ca字符串的长度*/ return 0;}//---------------------------------------------------------------------------
在C语言中,strlen("Hello!")的值是
6uff0cuff0cuff0cuff0cuff0cuff0cuff0cuff0c
strlen遇到汉字会怎样处理?
strlen 在处理汉字串时,与处理一般的英文串是一样的,就是计算从串首地址开始检查到""字符的位置,然后计算两个地址的差,返回差值,也就是字符串中有多个字符(字节)x0dx0ax0dx0a""字符不是汉字的组成部分!x0dx0ax0dx0a对于一个汉字占几个字节,不同的字符集是不同的,x0dx0a如果环境变量设置为utf8,则一个汉字占三个字节x0dx0a如果设置成gbk类,则一个汉字占两个字节
strlen和str.length的区别
很高兴回答你的问题,以下是我个人见解,希望可以帮到你:两者都是求字符串的长度,但strlen( )的参数必须是char* ;而 str.length( )是string类对象str调用的成员函数,所以它们用在不同的地方;char* ch="asdfsafas";string str="adfadf";cout<<str.length();// cout<<strlen(str); 出错cout<<strlen(ch);// cout<<ch.length();出错strlen()的定义基本如下:int strlen( const char *str ) //输入参数const{assert( strt != NULL ); //断言字符串地址非0int len;while( (*str++) != "" ){len++;}return len;望采纳,十分感谢。
一道C语言题目,strlen("abcdef g"),答案是多少,怎么解释?还有strlen怎么用的?
答案为4。因为strlen的作用机制为读字符串并计数,从第一个开始读,读到(空字符,C中用来表示字符串的结束)。int strlen(char *s);输入一个字符串,返回字符串的长度
c语言中strlen函数
是一个结束符,不算在里面的。
请问strlen这么用可以吗?
strlen()返回的是字符串长度,参数是一个字符串的地址,即其首元素的地址第一种用法:char *p="12345"; int l1=strlen(p);第二种用法:char ss[]="12345"; int l2=strlen(ss);这样都可以。p和ss都是这个字符串的首地址
详解c语言程序,为什么strlen要减一
这是一个下标的问题,初学语言的人很容易被迷惑。我们平常生活中,习惯计数是从1开始数数,但在计算机世界中,是从0开始计数。比方说,有10个苹果,给他们做编号,那么,现实世界中,是1,2,3,4,5,6,7,8,9,10,而计算机世界中,则是0,1,2,3,4,5,6,7,8,9。数组的第1个数的下标,始终是从0开始计数的,所以,长度是10,而使用下标的时候,则要减1
C++中,strlen是否只统计字符?还是只统计字符串?能统计普通数字么
看看它的参数就知道了
strlen(“a12bxab\bcd ”)的值为。
D=9 a, 12, b, xab, \, b, c, d,
strlen返回的是字节数还是字符数?
字符数 数组中字符个数char str[100]="abc";strlen 结果3sizeof结果100
为什么strlen()函数没有用?
strlen的参数必须是字符数组类型(const char *)的。你给它传一个int 数组,当然会出错了。原型:extern unsigned int strlen(char *s);下面这样就不会出错了。char str[20] = "0123456789"; cout<<strlen(str)<<endl;输出的应该是10.另外,cout你也写错了。不是>>,而是<<.=============================请问你想实现什么功能?就是单纯想试试strlen函数怎么用吗?
strlen(a) 用strlen计算各类型数组长度的时候是怎么来计算的?
C中strlen只是返回数组中字符串的个数,并不一定是数组的长度。strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符""为止,然后返回计数器值(长度不包含“”)。
用到strlen(函数,则应包含多少个头文件)
只需要 #include <string.h>拓展资料:strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符""为止,然后返回计数器值(长度不包含"")。参考资料:百度百科:strlen
C语言问题 关于strlen
你这编译能通过,少个逗号语法应该都通不过吧
strlen("ab c286f")的值,给我讲讲呗。
返回值为8。前两个字节分别是"a"、"b",这都很直观;第3个字节是“ ”,也就是0x0A;第4个字节是"c";接下来是这个题目的难点:286,由于8超出了八进制的范围,因此第5个字节直接取了“2”,也就是0x02;剩下来第6个字节是"8"、第7个字节是"6"、第8个字节是"f"。注意strlen返回的结果是不包含字符串结束符0x00的。
C编写程序,求所输入字符串的长度?(要求不能用strlen( )函数直接求)
strlen的结果要在运行的时候才能计算出来,主要用来计算字符串的长度,不是类型占内存的大小,strlen只能用char*做参数,且必须是以""""结尾的。1、第二个元素就是所以得到字符串长度为12、 v\都是转义字符,为三个字符,后面又是,所以长度为33、x69就是16进制的69,十进制为105,查看ascii表对应字符,而xxx指的是一个八进制值所对应字符,但是82显示不是,八进制只有0-7的数字,所以这里只是一个和数字82字符串长度为1如果要获得每个数组中有多少个字符可以考虑用sizeof
为什么C++里string类数组不能使用strlen???
//cout<<"str1:"<<str1<<strlen(str1)<<endl;修改成这样//cout<<"str1:"<<str1<<strlen(str1.c_str())<<endl;试试。strlen接受的参数是char *,string是c++中的一个类。可以使用.size()获得其长度
strlen()函数的返回值是什么类型的
unsigned int
strlen(a) 用strlen计算各类型数组长度的时候是怎么来计算的?
C中strlen只是返回数组中字符串的个数,并不一定是数组的长度。strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符""为止,然后返回计数器值(长度不包含“”)。externunsignedintstrlen(char*s);在VisualC++6.0中,原型为size_t strlen(constchar*string);,其中size_t实际上是unsignedint,在VC6.0中可以看到这样的代码:typedefunsignedintsize_t;。头文件:string.h格式:strlen(字符数组名)功能:计算给定字符串的(unsignedint型)长度,不包括""在内说明:返回s的长度,不包括结束符NULL。例子:#include<string.h>#include<stdio.h>int main(void){ char*s="GoldenGlobalView"; printf("%s has %d chars",s,strlen(s)); getchar(); return 0;}
strlen和sizeof有什么区别?
sizeof计算变量占用的字节数strlen计算字符串占用的字节数你的题目应该再加一个chars[]="01010\010 ";
C语言中strlen(s)是什么意思?S是一个数组!
strlen是C语言标准库提供的一个函数,给你提供strlen的一个版本,你就明白其中的s是什么意思了。size_tstrlen(constchar*s){constchar*sc;for(sc=s;*sc!="";++sc);return(sc-s);}
c语言sizeof和strlen的区别是什么?
一、指代不同1、sizeof:用于获取字符串的长度,是处理字符串的重要工具。2、strlen:所作的是一个计数器的工作。二、规则不同1、sizeof:可用于任何变量名、类型名或常量值,当用于变量名(不是数组名)或常量时,不需要用圆括号。2、strlen:从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符""为止,然后返回计数器值。定义sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。MSDN上的解释为:The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type(including aggregate types). This keyword returns a value of type size_t。
C语言中 strlen函数用法的问题
写错了,改过来就行了
char aa[10];为什么strlen(a)却不是10?
strlen是求字符串长度啊……你用sizeof(aa)就是10了……
C语言 strlen("s 16end") 只有三个字符吗?为什么????
strlen("s 16end")结果为3strlen从开始位置计数,遇结束!被统计上的字符包括:s换行16是一个转义后的字符016是8进制数
c语言问题 strlen函数问题
你字符串中的可不是字符串结束符,双引号内的都会被当做字符串本身来处理的,你觉的是结束符,实际上是两个字符,分别是和0。而实际上我们也没有办法手动输入结束符,但是可以用memcopy或memset来填充0实现。结束符实际上是内存比特位级的置0。
c语言,函数strlen("ASDFG ")的值是7,对吗?怎么看的!
#include<stdio.h>#include<string.h>int main(void){ printf("%d ",strlen("ASDFG "));} 是转义字符!
strlen的函数原型
extern unsigned int strlen(char *s);在Visual C++ 6.0中,原型为size_t strlen(const char *string); ,其中size_t实际上是unsigned int,在VC6.0中可以看到这样的代码:typedef unsigned int size_t; 。头文件:string.h格式:strlen (字符数组名)功能:计算给定字符串的(unsigned int型)长度,不包括""在内说明:返回s的长度,不包括结束符NULL。相关函数:TCHAR.H routine _UNICODE & _MBCS not defined_MBCS defined_UNICODE defined_tcslen strlen strlen wcslen _tcsclen strlen _mbslen wcslen
strlen("China ")的值是多少
5应该是的
c语言中strlen的用法
//size_t strlen(const char*)int len=strlen("匿名");cout<评论00加载更多
C语言若有定义语句:char s[10]=〞1234567〞;,则strlen(s)的值是
在线吗?你稍微跟我描述一下你的问题,我在线帮你瞧瞧
在C语言中 /1 用strlen来算 长度为什么是1 它代表什么意思?
strlen是用来计算字符串长度的,返回值为你所要计算的字符串的长度!
strlen算不算呢?
strlen不算。strlen确实不计算结尾的,并且strlen会报错,使用时要注意判断参数是否为空,否则会抛出异常,C风格的字符串以作为字符串结束标记,所有标准字符串函数遵守这一约定。strlen的概括strlen所作的仅仅是一个计数器的工作,它从内存的某个位置,可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域开始扫描,直到碰到第一个字符串结束"为止,然后返回计数器值,长度不包含。strlen函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个,如果你只定义了一个字符型数组但没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到停止。
c语言中“strlen()”怎么用?
他是一个统计字符串长度的函数,给你举个例子:希望能帮到您!#include<stdio.h> #include<string.h> void f(char a[]); int main(){ char a[100]; printf("input 4 figures: "); gets(a); f(a); return 0;}void f(char a[]){ int i,j; i=strlen(a); for(j=0;j<=i-1;j++) { printf("%c",a[j]); printf(" "); } printf(" ");}
函数strlen("abcde ")的值是?
6撒,lz不会自己编个程序试试……
strlen函数
1.strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符""为止,然后返回计数器值(长度不包含“”)。2.头文件:string.h格式:strlen(字符数组名)。功能:计算给定字符串的(unsignedint型)长度,不包括""在内。说明:返回s的长度,不包括结束符NULL。相关函数:TCHAR.Hroutine_UNICODE&_MBCSnotdefined_MBCSdefined_UNICODEdefined_tcslen3.应用:#include<string.h>#include<stdio.h>int main(void){ char*s="GoldenGlobalView"; printf("%s has %d chars",s,strlen(s)); getchar(); return 0;}
strlen("China ")的值是多少?
strlen是计算字符串长度,不包括字符串结束符,该问题主要是" "的问题," "不是字符串结束符,那么就会在计算内,且" "为转义字符,为单个字符,所以strlen("China ")结束为6。strlen是求字符串长度的函数。函数原型:unsigned int strlen(char *s);参数:s是char类型的指针,指向要求长度的字符串返回值:返回字符串的长度,返回类型是无符号整型注意:strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符""为止,然后返回计数器值(长度不包含“”)。实例:#include#includeint main(void){char*s="GoldenGlobalView";printf("%s has %d chars",s,strlen(s));getchar();return 0;}
C++中getlen()、strlen()、sizeof()三个函数的区别是什么?
getlen这个函数我没见过哦....msdn里面也没有 strlen 这个函数呢,是返回一个字符串中的字符个数,,不包括结束符 "" #include <string.h> #include <stdio.h> #include <conio.h> #include <dos.h> void main( void ) { char buffer[61] = "How long am I?"; int len; len = strlen( buffer ); printf( ""%s" is %d characters long ", buffer, len ); } Output "How long am I?" is 14 characters long sizeof..首先我要说的是,这个不是一个函数,是一个运算符.相当于 + - * ....它是系统的一个关键字..跟return int char是一类的..它能够得到一个变量的大小..(按字节计算)... int array[] = { 1, 2, 3, 4, 5 }; // sizeof( array ) is 20 因为array中含有5个int型..一个是4字节..
strlen函数计算字符串长度
strlen遇到就结束,不继续往下计算长度了1.答案1是因为第2个字符为,所以只计算了一个字符"A"2.答案3是因为 、v、\前面的是表示转义符3.答案1是因为x69表示是16进制的数值
strlen算不算
strlen指的是字符串的长度,不包含/t。 strlen是C语言中的库函数,计算字符串长度,不包括尾0。 strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符""为止,然后返回计数器值(长度不包含"")。
strlen("China ")的值是多少?
strlen是计算字符串长度,不包括字符串结束符,该问题主要是" "的问题," "不是字符串结束符,那么就会在计算内,且" "为转义字符,为单个字符,所以strlen("China ")结束为6。strlen是求字符串长度的函数。函数原型:unsigned int strlen(char *s);参数:s是char类型的指针,指向要求长度的字符串返回值:返回字符串的长度,返回类型是无符号整型注意:strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符""为止,然后返回计数器值(长度不包含“”)。实例:#include#includeint main(void){char*s="GoldenGlobalView";printf("%s has %d chars",s,strlen(s));getchar();return 0;}
c语言,函数strlen("ASDFG ")的值是7,对吗?怎么看的?
不对的,这个值是6.1 strlen求的是字符串的长度,也就是从起始到的字符个数,不包括.2 对于写成常量字符串形式的"ASDFG "在最后有一个隐藏的.3 在这里 是C语言字符表达的转义字符形式,代表换行。也就是说, 是一个字符,而不是和n两个字符。4 综上,这个字符串包含的字符为A S D F G 一共6个,于是strlen的结果就是6.
C语言中sizeof与strlen的区别是什么
sizeof 是被测试类型占用字节的大小strlen是以为结束符的字符串的串长度(不含结束符)比如吧:char *p = "0123456789abcdef";char str[] = "0123456789abcdef";char str2[100] = "0123456789abcdef";sizeof(p) 只是 4(或8与操作系统有关,32位系统应当只是4)strlen(p) 是16个长度sizeof(str) 是17strlen(str) 是16sizeof(str2) 是100strlen(str2) 是16
用strlen()时,头文件要用什么?
#include<string.h>其实你只要在Turbo C中键入strlen后将光标定位在这个单词上,右键,就会有关于这个函数的详细说明.
strlen求字符串长度
strlen的结果要在运行的时候才能计算出来,主要用来计算字符串的长度,不是类型占内存的大小,strlen只能用char*做参数,且必须是以""""结尾的。1、第二个元素就是 所以得到字符串长度为12、 v \都是转义字符,为三个字符,后面又是,所以长度为33、x69就是16进制的69,十进制为105,查看ASCII表对应字符,而xxx指的是一个八进制值所对应字符,但是82显示不是,八进制只有0-7的数字,所以这里只是一个 和数字 82 字符串长度为1如果要获得每个数组中有多少个字符可以考虑用sizeof求采纳为满意回答。
C语言中strlen()函数的意思?
strlen()返回参数字符串的长度
C语言中strlen什么用法
这个函数是用来计算字符数组的长度的。下面有个相似的问题,你可以看看。
c语言中strlen()怎么用
__cdecl strlen(const char *);计算字符串的实际长度(不含字符串结束标志‘"),并将计算结果作为函数值返回。
c语言里面的strlen是干什么的
计算字符串长度。
请问 C++中strlen()用法
str0的sizeof为8,导致没有结束,因此strlen的返回是不可预期的。str1的sizeof实际上是9,会自动加结束。str2的56会被解释成8进制数056表示的字符,因此strlen是9str3的会被解释为结束符
C语言中sizeof和strlen函数区别在哪?
一、sizeofsizeof(...)是运算符,在头文件中typedef为unsignedint,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:数组——编译时分配的数组空间大小;指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4);类型——该类型所占的空间大小;对象——对象的实际占用空间大小;函数——函数的返回类型所占的空间大小。函数的返回类型不能是void。二、strlenstrlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL;1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsignedint类型。该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以""""结尾的。sizeof还可以用函数做参数,比如:shortf();printf("%d ",sizeof(f()));输出的结果是sizeof(short),即2。4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。5.大部分编译程序在编译的时候就把sizeof计算过了是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因charstr[20]="0123456789";inta=strlen(str);//a=10;intb=sizeof(str);//而b=20;6.strlen的结果要在运行的时候才能计算出来,时用来计算字符串的长度,不是类型占内存的大小。7.sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。8.当适用了于一个结构类型时或变量,sizeof返回实际的大小,当适用一静态地空间数组,sizeof归还全部数组的尺寸。sizeof操作符不能返回动态地被分派了的数组或外部的数组的尺寸9.数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址,如:fun(char[8])fun(char[])都等价于fun(char*)在C++里参数传递数组永远都是传递指向数组首元素的指针,编译器不知道数组的大小如果想在函数内知道数组的大小,需要这样做:进入函数后用memcpy拷贝出来,长度由另一个形参传进去fun(unsigedchar*p1,intlen){unsignedchar*buf=newunsignedchar[len+1]memcpy(buf,p1,len);}
请问 C++中strlen()用法
数组str0中没有"",strlen是以""为标志判断字符串结束的。
关于strlen的算法
第一个97,先判断它不是八进制的,所以遇到就停止了第二个78是一个八进制的
strlen("ats 0121\")
C 程序段得意思是打印字符串的长度 其中ATS是字母 长度各为1 是转义字符 表示换行 012是数字,长度各为1 1也是个转义字符 \是转义字符 所以加一起是9
C语言中的strlen函数
strlen是求字符串长度的函数。函数原型:unsigned int strlen(char *s);参数:s是char类型的指针,指向要求长度的字符串返回值:返回字符串的长度,返回类型是无符号整型注意:strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符""为止,然后返回计数器值(长度不包含“”)。实例:#include<string.h>#include<stdio.h>int main(void){ char*s="GoldenGlobalView"; printf("%s has %d chars",s,strlen(s)); getchar(); return 0;}
直接调用字符串函数strlen( ),求字符串长度
strlen的结果要在运行的时候才能计算出来,主要用来计算字符串的长度,不是类型占内存的大小,strlen只能用char*做参数,且必须是以""""结尾的。1、第二个元素就是所以得到字符串长度为12、 v\都是转义字符,为三个字符,后面又是,所以长度为33、x69就是16进制的69,十进制为105,查看ascii表对应字符,而xxx指的是一个八进制值所对应字符,但是82显示不是,八进制只有0-7的数字,所以这里只是一个和数字82字符串长度为1如果要获得每个数组中有多少个字符可以考虑用sizeof
C语言中sizeof和strlen函数区别在哪?
一、sizeofsizeof(...)是运算符,在头文件中typedef为unsignedint,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:数组——编译时分配的数组空间大小;指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4);类型——该类型所占的空间大小;对象——对象的实际占用空间大小;函数——函数的返回类型所占的空间大小。函数的返回类型不能是void。二、strlenstrlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL;1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsignedint类型。该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以""""结尾的。sizeof还可以用函数做参数,比如:shortf();printf("%d ",sizeof(f()));输出的结果是sizeof(short),即2。4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。5.大部分编译程序在编译的时候就把sizeof计算过了是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因charstr[20]="0123456789";inta=strlen(str);//a=10;intb=sizeof(str);//而b=20;6.strlen的结果要在运行的时候才能计算出来,时用来计算字符串的长度,不是类型占内存的大小。7.sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。8.当适用了于一个结构类型时或变量,sizeof返回实际的大小,当适用一静态地空间数组,sizeof归还全部数组的尺寸。sizeof操作符不能返回动态地被分派了的数组或外部的数组的尺寸9.数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址,如:fun(char[8])fun(char[])都等价于fun(char*)在C++里参数传递数组永远都是传递指向数组首元素的指针,编译器不知道数组的大小如果想在函数内知道数组的大小,需要这样做:进入函数后用memcpy拷贝出来,长度由另一个形参传进去fun(unsigedchar*p1,intlen){unsignedchar*buf=newunsignedchar[len+1]memcpy(buf,p1,len);}
strlen 函数的源代码
int fun(char s1[]){int i,ans;for(i=0;s1[i]!="";i++)ans=i+1;return ans;}
函数strlen("ABCD \123")的值是多少
返回7解析:ABCD \123分看单个字符ABCD // 这个是tab\ // 这个是123 // 这个是字符的8进制表示形式
请教大家一个strlen函数的问题
出这道题目的人水平太差了,多办是半路出家的,非常不专业,你的分析是有道理的。可能出题人只用过TURBO C,因为只有TURBO C这样的小程序才喜欢画蛇添足,自动添加结束符,所以长度会都是3。TURBO C自动添加结束符的做法是不规范的,C语言定义并没有这样规定编译器的行为,我们写程序切记千万别依赖这些不规范行为,否则在你写手机程序、UNIX程序的时候,会感到无数的莫名其妙,许多时候永远都想不明白程序原因。你的分析完全正确,在UNIX、LINUX、FREE BSD等正规的C语言里面,都是不添加结束符的,下面是我在SCO UNIX下运行程序的情况:$ cat a.cmain(){ char p[]={"a", "b", "c"}, q[10]={"a", "b", "c"};printf("%d %d ", strlen(p), strlen(q));}$ cc a.c$ a.out9 3为什么输出结果是9和3呢,因为UNIX装载要初始化内存为0,所以第二个长度是3,而且前面个的9可以让我们知道p和q两个变量之间有多少内存浪费来对齐:)eGmeN4gFop22wPSBOiOI
c++中的strlen怎么调用?
因为C++里没有string.h这个头文件,今天才听老师讲了。你用的是旧式的#include<iostream.h>#include<string.h>如果用下面的新式的就行#include<iostream>#include<string>using namespace std;因为using namespace std可以把C的string.h也包含进去,这就是新旧的差别!
strlen如何求二维数组某一行的长度
我想你其实不是问这个问题,LZ想问的是?
求解一个c语言选择题 不是说strlen遇到/0就停止了吗?
是这样的。C语言中的字符串实际上是字符数组,即char类型的数组。不过特殊约定以作为结束符。strlen是C语言中字符串函数之一,功能为求字符串的长度。即字符串中有效字符的个数,不包括结尾的.要调用strlen,需要引用头文件string.h。比如strlen("1234");的返回值为4,在内存中实际存的值为"1","2","3","4",""。需要注意的是,sizeof和strlen的结果,在大多数情况下都是不同的。
strlen和sizeof求字符串长度的区别
strlen是返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。sizeof是获得保证能容纳实现所建立的最大对象的字节大小。 strlen和sizeof求字符串长度的区别 一、定义不同 sizeof是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 2、它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:数组——编译时分配的数组空间大小;指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4)。 二、语法不同 1、strlen是函数,要在运行时才能计算。参数必须是字符型指针。当数组名作为参数传入时,实际上数组就退化成指针了。 2、它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。
strlen是不是遇到空格就停止了?
不会停止,而且一个空格算一个字符
strlen遇到汉字会怎样处理?
strlen 在处理汉字串时,与处理一般的英文串是一样的,就是计算从串首地址开始检查到""字符的位置,然后计算两个地址的差,返回差值,也就是字符串中有多个字符(字节)""字符不是汉字的组成部分!对于一个汉字占几个字节,不同的字符集是不同的,如果环境变量设置为utf8,则一个汉字占三个字节如果设置成gbk类,则一个汉字占两个字节
C语言 strlen 函数求字节数 例如输入“how are you” 包括空格吗 矛盾!!
当然包含空格了,直到遇见""结束
C语言中strlen(s)是什么意思?S是一个数组!
strlen是C语言标准库提供的一个函数,给你提供strlen的一个版本,你就明白其中的s是什么意思了。size_tstrlen(constchar*s){constchar*sc;for(sc=s;*sc!="";++sc);return(sc-s);}
在C语言中,strlen(“TOP╲t╲0”)的值是
如果是英文半角的话, 值为5如果题目上就是全角的反斜杠, 那就是9