首页 > 其他分享 >字符串函数

字符串函数

时间:2022-12-13 13:11:26浏览次数:35  
标签:src const 函数 s2 dst char printf 字符串

1.strlen与sizeof(返回字符串的长度,不包括结尾的0)   size_t strlen(const char *s)

#include <stdio.h>
int getLength(char *s)
{
    int cnt = 0;
    while (s[cnt] != '\0') {
        cnt++;
    }
    return cnt;
}
int main()
{
    char line[] = "Hello";
    printf("getLength=%lu\n",getLength(line));
    printf("strlen=%lu\n",strlen(line));// 不算结尾的0的长度,,如果要写在函数里呢,就是不传数组长度进去的时候
    printf("sizeof=%lu\n",sizeof(line));// 算结尾的0的长度
    return 0;
}

2.strcmp比较两个字符串,则是不可能修改字符串,所以是const修饰字符串,比较内存的内容

#include <stdio.h>

int main()
{
    char s1[] = "Hello";
    char *s2 = "Hello";//证明数组和指针是一样的
    printf("%d\n",strcmp(s1,s2));//结果是0
    printf("%p   %p\n",s1,s2);//000000000061FE12   0000000000404000  但是指针所指向的地方不一样呀
    return 0;
}

3.strcpy(拷贝功能)------char* strcpy(char *restrict dst,const char * restrict src)   restrict表示不能有重叠的部分

常规操作:char *dst = (char*)malloc(strlen(src)+1)//strlen只是内容,因此+1获得内存长度,先申请出一块空间

       strcpy(dst,src);//再拷贝

#include <stdio.h>
char *mycpy(char *dst,char *src)
{
    int idx = 0;
    while (src[idx]) {
        dst[idx]=src[idx];
        idx++;
    }
    dst[idx] = '\0';
//    char *ret = dst;//第二种方法:指针方法
//    while (*src != '\0') {
//        *dst++ = *src++;
//    }
//    *dst = '\0';
    return dst;
}
int main()
{
    char s1[]="abc";
    char s2[]="abc";
    char s3[10];
    //strcpy(s3,s2);
    mycpy(s3,s2);
    printf("%s",s3);
}

4.strchr(查找功能)--------strchr(s,'l'),可以从左边找也可以从右边找

#include <stdio.h>

int main()
{
    char s[]="hello";
    char *p = strchr(s,'l');
    p = strchr(p+1,'l');
    printf("%p\n",p);
    printf("%s\n",p);
}

上面打印出来的是找到字符后面的打印

下面是打印的是找到字符前面的打印,,这些返回值的意思就是char型指针

 

查找字符串中的字符串:char *strstr(const char *s1,const char *s2)

大小写不敏感的查找字符串:char *strstr(const char *s1,const char *s2)

 

标签:src,const,函数,s2,dst,char,printf,字符串
From: https://www.cnblogs.com/huskyWuWuWu/p/16978484.html

相关文章

  • SQL 函数
    1MySQLDate函数函数描述在数据库中的存储格式now()返回当前的日期和时间curdate返回当前的日期curtime返回当前的时间date提取日期或日期/......
  • js字符串转字节stringToByte
    functionstringToByte(str){varlen,c;len=str.length;varbytes=[];for(vari=0;i<len;i++){c=str.charCodeAt(i);......
  • C# - DTO 的字符串表达
    第一阶段重写DTO的ToString()方法。利用Newtonsoft.Json序列化DTO对象。第二阶段为DTO设置基类,重写基类的ToString()方法。利用System.Text.Json序列化D......
  • 滴水3.权限控制+虚函数表
    1.头文件的引入使得结构简洁 2.私有与公共3.私有的如何访问   4.私有的优势5.类与结构区别  成员权限区别继承权限    默认继承私有6.私有是否可以被继承 ......
  • Python函数的参数
    5.3函数参数示例2中定义的函数虽然能够计算总分数,但是每次计算后的结果是固定的,为了增加函数的灵活性,我们希望在调用函数的时候可以传入一些数据,然后根据传入的数据进行......
  • MySql的常用函数2
    2.分组函数功能:做统计使用(统计函数、聚合函数、组函数)分类:sum求和、avg平均值、max最大值、min最小值、count计算个数#1.简单的使用selectsum(salary)fromemploye......
  • 如何把类似json的字符串转换为python的字典类型?
    疑问: 如何把类似json的字符串转换为python的字典类型?解答:代码word='{"name":"123"}'importjsontry:res=json.loads(word)exceptjson.decoder.J......
  • KingabseES例程-函数和过程的 INVOKER 与 DEFINER
    调用者权利和定义者权利子句指定子程序的权利属性。权利属性影响单元在运行时,执行的SQL语句的名称解析和权限检查。PG模式:SECURITYINVOKERSECURITYDEFINEROracle模......
  • 一文带你入木三分地理解字符串KMP算法(next指针解法)
    1.KMP算法简介温馨提示:在通篇阅读完并理解后再看简介效果更佳以下简介由百度百科提供https://baike.baidu.com/item/KMP%E7%AE%97%E6%B3%95/10951804:KMP算法是一种改......
  • python中的高阶函数
    1.匿名函数#lambda表达式#匿名函数#没有名字的函数相当于#优点:节省内存空间优化代码#defadd(a,b):#returna+bdefadd(a,b):returna+b#当......