首页 > 其他分享 >利用C语言求字符串长度

利用C语言求字符串长度

时间:2024-08-18 22:52:14浏览次数:12  
标签:return int my C语言 char str 字符串 长度 strlen

在C语言中库函数中已有求字符串长度的函数strlen,我们可以自己编写一个求字符串函数my_strlen求字符串长度

注意:strlen 函数返回类型是size_t,是无符号整型

方法1:创建临时变量

#include <stdio.h>
int my_strlen(char* str)
{
    int count = 0;
    while (*str != '\0')
    {
        count++;
        str++;
    }
    return count;
}
int main()
{
    char arr[] = "abcdef";
    int len = my_strlen(arr);
    printf("%d\n", len);
    return 0;
}

方法2:函数递归


#include <stdio.h>

int my_strlen(char* str)

{

if (*str != '\0')

return 1 + my_strlen(str + 1);//函数递归

else

return 0;

}

int main()

{

char arr[] = "abc";

int len = my_strlen(arr);

printf("%d\n", len);

return 0;

}

方法3:利用指针运算

#include <stdio.h>
#include <assert.h>
int my_strlen(char* str)
{
    assert(str);
    char* start = str;
    while (*str != '\0')
    {
        str++;
    }
    return (str - start);
}
int main()
{
    int len = my_strlen("abcdefg");
    printf("%d\n", len);
    return 0;
}

方法4:模拟strlen


#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

#include <assert.h>

int my_strlen(const char* p)

{

assert(p);//断言

int* ptr = p;

while (*p != '\0')

{

p++;

}

return p - ptr;

}

int main()

{

//模拟strlen

char arr[] = "abcdefg";

int n = my_strlen(arr);

printf("%u\n", n);

return 0;

}

标签:return,int,my,C语言,char,str,字符串,长度,strlen
From: https://blog.csdn.net/2301_81978577/article/details/141306749

相关文章

  • 以c primer plus(第六版)为大纲的C语言初学手记,含示例代码及编程练习(第四章)
    //第4章//example4.1//#include<stdio.h>//#include<string.h> //toincludestrlrn()//#defineDENSITY62.4 //todefineaconstant//intmain()//{//   floatweight,volume;//   intsize,letters;//   charname[40]; //todeclareadig......
  • C语言基础- Hello World
    第一个C语言程序HelloWorld#include<stdio.h>//#关键标识符,表示用用头文件;include:引入都文件关键字 //stdio.h:系统标准输入、输出库对用的头文件。给printf函数服务 //<>:表示系统库函数,"":表示用户自定义库函数intmain(void) //int:函数返回值是整形数据......
  • C语言编程-GCC编译过程
    gcc编译预处理->编译->汇编->链接预处理gcc-Ehelloworld.c-ohelloworld.i头文件展开;不检查语法错误,即可以展开任意文件;宏定义替换;将宏名替换为宏值;替换注释;将注释替换为空行;展开条件编译;根据条件来展开指令;编译gcc-Shelloworld.i-ohelloworld.s逐行检查......
  • #1.字符串哈希学习笔记
    “十分简单易懂的字符串哈希教程”字符串哈希0x01.什么是哈希定义(摘自OIwiki)[https://oi-wiki.org/string/hash/]>我们定义一个把字符串映射到整数的函数f,这个f称为是Hash函数。我们希望这个函数f可以方便地帮我们判断两个字符串是否相等。人话:把字符串以特定的......
  • web前端之根据字符串长度从长到短排序、中文字符串优先、样式循环、禁止冒泡、悬浮、
    MENU前言效果图htmlstyleJavaScript前言1、代码段由HTML、CSS(使用Sass语法)和JavaScript组成,创建一个文本框,用户可以在其中输入内容,并通过点击按钮进行操作。2、代码段的主要功能是允许用户输入一系列以、分隔的项,并根据长度对这些项进行排序(中文字符优先),然后......
  • 专题:C语言操作符详解
    ⽬录1.操作符的分类2.⼆进制和进制转换3.原码、反码、补码4.移位操作符5.位操作符:&、|、^、~6.单⽬操作符7.逗号表达式8.下标访问[]、函数调⽤()9.结构成员访问操作符10.操作符的属性:优先级、结合性11.表达式求值1.操作符的分类•算术操作符:+、-......
  • 不可变字符串string的相关操作
    staticvoidMain(string[]args){//截取字符串stringstr1="ABCDEFGHIJKLMN";stringstr2=str1.Substring(0,4);//从0位开始截取,共截取4位;Console.WriteLine(str2);Console.WriteLin......
  • 浅谈哈希长度扩展攻击
    攻击原理:我们首先需要了解一下MessageAuthenticationcodes(MACs),称为消息验证码,一般用于服务器验证消息的真实性。服务器把密钥和消息连接起来,用摘要算法获取摘要,对于H(secret+data)此类构造的散列函数,在密钥长度****和数据已知的情况下,通常可以使用哈希长度扩展攻击。......
  • Leetcode每日一题 20240817 3137.K周期字符串需要的最少操作次数
    题目描述给你一个长度为n的字符串word和一个整数k,其中k是n的因数。在一次操作中,你可以选择任意两个下标i和j,其中0<=i,j<n,且这两个下标都可以被k整除,然后用从j开始的长度为k的子串替换从i开始的长度为k的子串。也就是说,将子串word[i…i+k......
  • 字符串操作
    字符串处理字符串去分割符voidRemoveDelimiter(string&str){array<char,2>delimiterArray{',',''};for(inti=0;i<str.size();++i){if(autoit=find(delimiterArray.begin(),delimiterArray.end(),str[i]);i......