来自 澳门金莎娱乐手机版 2019-11-08 04:18 的文章
当前位置: 金沙澳门官网网址 > 澳门金莎娱乐手机版 > 正文

操作符和strlen,C语言实现strlen函数和字符串遍历

C语言实现strlen函数和字符串遍历,strlen函数字符串

strlen实现:

1 int my_strlen(char *str)
2 {
3     char *tmp = str;
4     while (*str)
5     {
6         str++;
7     }
8     return str - tmp;

字符串遍历:

 

 1 void stringDis(char *str)
 2 {
 3     //int len = sizeof(str) / sizeof(char); //error if there is space
 4     //int len = strlen(str);    //<string.h>
 5     int len = my_strlen(str); //same as strlen()
 6     for (int i = 0; i < len;i++)
 7     {
 8         printf("%c", str[i]);
 9     }
10     printf("n");
11 }

 

strlen实现: 1 int my_strlen( char * str) 2 { 3 char *tmp = str; 4 while (* str) 5 { 6 str++ ; 7 } 8 return str...

正文不是切磋sizeof(), strlen() 的深邃定义和规律,我们不会在商议上太过钻牛角。希望读那篇文章的您,也决不太过抠概念(不要拘泥于语法卡塔尔。大家只压实用意义 的牵线和探讨。

在介绍字符串早前,先介绍 sizeof()操作符 、 strlen()库函数。

1.sizeof() 基本介绍

 1     printf("int: %dn", sizeof(int));
 2     printf("char: %dn", sizeof(char));
 3     printf("int*: %dn", sizeof(int *));
 4     printf("char*: %dn", sizeof(char *));
 5     printf("short: %dn", sizeof(short));
 6     printf("float: %dn", sizeof(float));
 7     printf("double: %dn", sizeof(double));
 8     printf("long: %dn", sizeof(long));
 9     printf("long long: %dn", sizeof(long long));
10     printf("unsinged int: %dn", sizeof(unsigned int));
11     printf("unsigned char: %dn", sizeof(unsigned char));
12     printf("unsigned short: %dn", sizeof(unsigned short));
13     printf("unsigned long: %dn", sizeof(unsigned long));
14     printf("******************************************n");

图片 1

1.1 sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编写翻译时即总计好了,参数能够是数组、指针、类型、对象、函数等。

    它的功效是:取得保险能宽容完结所建设构造的最大指标的字节大小。
    由于在编写翻译时总结,因而sizeof不可能用来回到动态分配的内部存储器空间的深浅。实际上,用sizeof来回到类型以至静态分配的指标、结构或数组所占的空间,再次来到值跟对象、结构、数组所蕴藏的内容从未关系。
    具体来讲,当参数分别如下时,sizeof重临的值表示的含义如下:
    数组——编写翻译时分配的数组空间大小;
    指针——存款和储蓄该指针所用的半空中大小(存款和储蓄该指针之处的尺寸,是长整型,应为4卡塔 尔(阿拉伯语:قطر‎;
    类型——该项目所占的半空中尺寸;
    对象——对象的骨子里据有空间大小;
    函数——函数的回到类型所占的空中尺寸。函数的归来类型无法是void。 

1.2 sizeof()的基本知识,可是多介绍。上面讲多少个根本(面试题常考):

sizeof(int)的 值是 4  个字节;

sizeof(指针) 的值是 4 个字节;

sizeof(char) 的值是 1 个字节; 

char szStr1[20] = {0};

int  szStr2[20] = {0};

*sizeof(szStr1)  结果是: 20   // 十多个 char 的数组,在内部存款和储蓄器中,占用 20 1个 字节空间

*sizeof(szStr2) 结果是: 80    // 二十个 int 的数组,在内部存款和储蓄器中 占用 20 4 个字节空间

1.3 数组和指针的界别、 sizeof()结构体的内存对齐难点,那2个知识点先跳过,今后会谈谈;

 

本文由金沙澳门官网网址发布于澳门金莎娱乐手机版,转载请注明出处:操作符和strlen,C语言实现strlen函数和字符串遍历

关键词: