strlen

char c1[] = "sdfa";//系统自动添加结束字符 \0

char c2[] = {‘1‘,‘2‘,‘3‘};//这样赋值的话,要自己加上结束字符 \0

printf("%s\t %s\n",c1,c2);

printf("%lu\t %lu\n",strlen(c1),sizeof(c2));//strlen获得字符串长度,不包括\0

时间: 2024-10-27 17:53:30

strlen的相关文章

strlen函数实现

原型: int strlen(const char *s); 作用:返回字符串的长度. 方法1:利用中间变量 int strlen(const char *s){ int i=0; while(s[i] != '\0'){ i++; } return i; } 方法2:利用指针 int strlen(const char *s){ char *t=s;while(*s){ s++; } return s-t; } 方法3:利用递归 int strlen(const char *s){ if(s=

sizeof strlen strncpy

sizeof测类型(数组名除外) strlen测实际长度 strncpy返回指针类型 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 int main() 5 { 6 char *p="wangddd"; 7 printf("%d\n",sizeof(p));//输出4,指针类型 8 9 char x[8]; 10 printf("%d

C语言::模拟实现strlen函数

编写一个C语言程序模拟实现strlen函数. 算法 strlen函数功能是计算字符串中字符的个数.(除\0外) 而字符串本身就是一个字符数组,只不过末尾以\0结束. 因此,我们只需遍历除\0之外的所有字符即可. 有三种方法可以解决这个问题. 算法总结 方法一:设置一个整型计数器,遍历字符串. 方法二:通过不断函数自身的递归. 方法三:与方法一类似,设置一个char*变量标记字符串尾部,通过指针相减得到字符长度. 核心代码 //方法一:通过设置整型计数器,模拟实现strlen函数. int my_

C语言编译出现 incompatible implicit declaration of built-in function ‘strlen’等

C语言 编译时出现错误 warning: incompatible implicit declaration of built-in function 'malloc'warning: incompatible implicit declaration of built-in function 'bzero'warning: incompatible implicit declaration of built-in function 'strncpy'warning: incompatible

strlen(); strcpy(); strcat(); strcmp() ---笔记

指针小知识点: int a =10; int *p=&a; int *q=p;        //p中保存的是a的地址 int *q=p;       //将p的值赋给q 作用是让q也指向a strlen( ); 求字符串的长度 strcpy( ); 复制字符串 strcat( ); 连接字符串 strcmp( ); 字符串大小的比较 1 typedef unsigned int size_t 2 3 size_t my_strlen (const char *str) // strlen()

C++Sizeof与Strlen的区别与联系

一.sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等.    它的功能是:获得保证能容纳实现所建立的最大对象的字节大小.    由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小.实际上,用sizeof来返回类型以及静态分配的对象.结构或数组所占的空间,返回值跟对象.结构.数组所存储的内容没有关系.    具体而言,当参数分别如下时,sizeof返回的值表示

实现strlen()函数,strcmp()函数 const知识点

1.strlen()函数的实现: #include<stdio.h> int strLen(char *str); int strLen(char *str){     int i = 0;          while(*str){         str++;         i++;     }          return i; } void main(void){     char *str = "abcdefg";     int length;       

C语言中的sizeof和strlen

1.sizeof是算符,strlen是函数: 2.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的: 3.大部分编译程序,在编译的时候就把sizeof计算过了,这是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因: 4.strlen的结果要在运行的时候才能计算出来,用来计算字符串的长度,不是类型占内存的大小: 5.sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧,这是因为sizeof是个操作符不是个函数. 示例代码:

实现字符串函数,strlen(),strcpy(),strcmp(),strcat()

1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int my_strlen(char *str); 5 char *my_strcpy(char *dest, char *src); 6 char *my_strcat(char *dest, char *src); 7 int my_strcmp(char *str1,char *str2); 8 9 int main() 10 { 11 char dest[32] = "che

C语言:内存地址分析 &amp; sizeof和strlen用法总结

还是在大学时代接触的C语言,当时学习数组.指针等概念时,怎一个"晕"字了得.最近在学习之余,疯狂地恶补了相关知识,故总结之,如有错误,请大家多多指点. 一. 内存地址分析 1) 先来看一个最基础的例子: int a[4]; 提问:&a[0],  a,  &a,  a+1,  &(a+1),  &a+1 分别表示什么? 咋一看,真的不知所措: 我们可以图解来分析它(假设下面的操作均在32为系统上面). 先来对上图进行简单的说明工作: 1. 紫色区域就是数组