首页 > 其他分享 >str 系列字符串操作函数

str 系列字符串操作函数

时间:2024-01-10 12:22:05浏览次数:31  
标签:字符 函数 len char str 字符串 strlen

str 系列字符串操作函数主要包括 strlen、strcpy、strcmp、strcat 等。strlen 函数用于统计字符串长度,strcpy 函数用于将某个字符串复制到字符数组中,strcmp 函数用于比较两个字符串的大小,strcat 函数用于将两个字符串连接到一起。各个函数的具体格式如下所示:

1 #include <string.h>
2 size_t strlen(char *str);
3 char *strcpy(char *to, const char *from);
4 int strcmp(const char *str1, const char *str2);
5 char *strcat(char *str1, const char *str2);

对于传参类型 char*,直接放入字符数组的数组名即可。

例子:str系列字符串操作函数的使用

 1 #include <stdio.h>
 2 #include <string.h>
 3 int mystrlen(char c[]) {
 4 int i = 0;
 5 while (c[i++]);
 6 return i - 1;}
 7 //strlen 统计字符串长度
 8 int main() {
 9 int len; //用于存储字符串长度
10 char c[20];
11 char d[100] = "world";
12 gets(c);
13 puts(c);
14 len = strlen(c);
15 printf("len=%d\n", len);
16 len = mystrlen(c);
17 printf("mystrlen len=%d\n", len);
18 strcat(c, d);
19 strcpy(d, c); //c 中的字符串复制给 d
20 puts(d);
21 printf("c?d %d\n", strcmp(c, d));
22 puts(c);
23 return 0;
24 }
25 
26 //执行后的结果
27 hello
28 hello
29 len=5
30 mystrlen len=5
31 helloworld
32 c?d 0
33 helloworld

输入"hello"后的执行结果,通过 strlen 函数计算的字符串长度为5,我们自己写的函数就是 strlen 函数的计算原理,即通过判断结束符来确定字符串的长度。

strcpy 函数用来将字符串中的字符逐个地赋值给目标字符数组。例中我们将c 复制给d,就是将 c 中的每个字符依次赋值给 d,也会将结束符赋值给 d。注意,目标数组一定要大于字符串大小,即 sizeof(d)>strlen(c),否则会造成访问越界。

strcmp 函数用来比较两个字符串的大小,由于字符数组 c 中的字符串与d 相等,所以这里的返回值为 0。如果 c 中的字符串大于 d,那么返回值为 1;如果 c 中的字符串小于d,那么返回值为−1。如何比较两个字符串的大小呢?具体操作是从头开始,比较相同位置字符的ASCII 码值,若发现不相等则直接返回,否则接着往后比较。例如,strcmp("hello","how")的返回值是−1,即"hello"小于"how",因为第一个字符 h 相等,接着比较第二个位置的字符,e 的ASCII 码值小于 o 的,然后返回−1。

strcat 函数用来将一个字符串接到另外一个字符串的末尾。例中字符数组c 中存储的是"hello",我们将 d 中的"world"与 c 拼接,最终结果为"helloworld"。注意,目标数组必须大于拼接后的字符串大小,即 sizeof(c)>strlen(“helloworld”)。

 

标签:字符,函数,len,char,str,字符串,strlen
From: https://www.cnblogs.com/6290-6/p/17954972

相关文章

  • 回调函数
    两种不同机制的回调函数1. typedefvoid(*CallbackFunction)(int);    这个语句使用了指向函数的指针来定义回调函数类型。它表示一个接受一个`int`类型参数并且不返回任何值的函数指针类型。这种方式是C风格的函数指针,它可以用来定义简单的函数指针类型,但是在复......
  • 写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中
    描述写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)数据范围:1\len\le1000\1≤n≤1000输入描述:第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。输出描述:......
  • Apache Doris 聚合函数源码阅读与解析|源码解读系列
    笔者最近由于工作需要开始调研ApacheDoris,通过阅读聚合函数代码切入ApacheDoris内核,同时也秉承着开源的精神,开发了array_agg函数并贡献给社区。笔者通过这篇文章记录下对源码的一些理解,同时也方便后面的新人更快速地上手源码开发。聚合函数,顾名思义,即对一组数据执行聚合计算......
  • js判断字符串为纯ASCII字符串(仅有ASCI字符)
    functionisAscii(str){varpattern=/^[\x00-\x7F]+$/;//ASCII范围的Unicode编码returnpattern.test(str);}varstr1="Hello,_-";console.log(isAscii(str1));//truevarstr2="hello你好";console.log(isAscii(str2));//false......
  • 无涯教程-Redis - EVAL script 命令函数
    RedisEVAL命令用于使用Lua解释器判断脚本,EVAL的第一个参数是Lua5.1脚本,该脚本不需要定义Lua函数,它只是一个Lua程序,将在Redis服务器的上下文中运行,EVAL的第二个参数是表示Redis键名的脚本后的参数数量(从第三个参数开始)。EVALscriptnumkeyskey-语法以下是RedisEVA......
  • C++字符串操作函数笔记#
    1.strcpy()从strSrc地址开始且含有'\0'结束符的字符串复制到strDest开始的地址空间中,返回值类型为char* char*strcpy(char*strDest,constchar*strSrc) { assert((strDest!=NUL)&&(strSrc!=NULL)); char*address=strDest; while((*strDest++=*strSr......
  • c++内存打印函数
    voidPrintBuffer(void*pBuff,unsignedintnLen){if(NULL==pBuff||0==nLen){return;}constintnBytePerLine=16;unsignedchar*p=(unsignedchar*)pBuff;charszHex[3*nBytePerLine+1]={0};printf("--......
  • 无涯教程-Redis - DISCARD命令函数
    RedisDISCARD命令刷新事务中所有先前排队的命令,并将连接状态恢复为正常。DISCARD-返回值返回字符串OKDISCARD-语法redisDISCARD命令的基本语法如下所示:redis127.0.0.1:6379>DISCARD参考链接https://www.learnfk.com/redis/transactions-discard.html......
  • 无涯教程-Redis - UNSUBSCRIBE 命令函数
    RedisUNSUBSCRIBE命令从给定通道取消订阅客户端,如果没有给出通道,则从所有通道取消订阅。UNSUBSCRIBE-语法以下是RedisUNSUBSCRIBE命令的基本语法。redis127.0.0.1:6379>UNSUBSCRIBEchannel[channel...]UNSUBSCRIBE-返回值返回数组。UNSUBSCRIBE-示例redi......
  • python第三节:Str字符串类型(1)
    第二节:Str字符串类型python中处理文本数据是用str类型,不像其他语言区分字符和字符串,统一使用str类型。str在创建后是不可变的。在python中字符类型相当于长度是1的字符串类型。以下三种方式包裹的字符都算作字符串:单引号:'允许包含有"双"引号'双引号:"允许嵌入'单'引号"三重......