首页 > 其他分享 >C语言字符串操作函数汇总

C语言字符串操作函数汇总

时间:2023-02-09 13:04:26浏览次数:52  
标签:int str2 str1 汇总 C语言 char printf 字符串


1. strcpy函数

语法:strcpy(str1,str2)

功能:将字符串str2复制到字符串str1中,并覆盖str1原始字符串,可以用来为字符串变量赋值。

返回:str1

注意:

1. 字符串str2会覆盖str1中的全部字符;

2. 字符串str2的长度不能超过str1;

3. 拷贝原理:从首元素开始,遇到\0结束;

int main()
{
char *str1 = "hello world";
char *str2;
// 把str1的内容拷贝到str2,参数为字符数组指针
strcpy(str2, str1);
printf("str2 = %s\n", str2);
// str2 = hello world

char str3[15] = "hello\0 world";
char str4[15];
// str4的内容拷贝到str3,遇到\0结束
strcpy(str4, str3);
printf("str4 = %s\n", str4);
// str4 = hello

return 0;
}

2. strncpy函数

语法:strncpy(str1,str2,n)

功能:将字符串str2中的前n个字符复制到字符串str1的前n个字符中。

返回:str1

注意:

1. 不会清除str1中全部字符串,只会改变前n个字符串;

2. n不能大于字符串str1、str2的长度;

3. 但是如果使用strncpy_s便会清除str1中的全部字符串;

int main()
{
char str1[] = "day day up";
char str2[] = "you are";
strncpy(str1, str2, strlen(str2));
printf("%s\n", str1);
// you are up
return 0;
}

3. strcat函数

语法:strcat(str1,str2)

功能:将字符串str2添加到字符串str1的尾部,也就是拼接两个字符串。

返回:str1

int main()
{
char str1[] = "hello";
char str2[] = "world";
strcat(str1, str2);

printf("%s\n", str1);
// hello world
return 0;
}

4. strncat函数

语法:strncat(str1,str2,n)

功能:将字符串str2的前n个字符添加到字符串str1的尾部。

返回:str1

注意:拼接之后的长度不能超过字符串数组str1的长度。

int main()
{
char str1[] = "hello ";
char str2[] = "world";
strncat(str1, str2, 2);
printf("%s\n", str1);
// hello wo
return 0;
}

5. strlen函数

语法:strlen(str1)

功能:计算字符串str1的长度。

返回:int值

注意:字符串的长度不包括字符'\0'。

int main()
{
char *str1 = "hello world";
char *str2 = "hello,\0 kite";
int l1 = strlen(str1);
int l2 = strlen(str2);
printf("l1 = %d\n", l1);
// 11
printf("l2 = %d\n", l2);
// 6
return 0;
}

6. strcmp函数

1. 语法:strcmp(str1,str2);

功能:比较两个字符串。

(1). 如果两个字符串相等,则返回0;

(2). 若str1大于str2,返回一个正数,这个正数不一定是1;

(3). 若str1小于str2,返回一个负数,这个数不一定是-1;

2. 语法:strncmp(str1,str2,n);

功能:比较两个字符串的前n个字符。

3. 语法:stricmp(str1,str2);

在Windows中使用stricmp,在Linux中使用strcasecmp。

功能:忽略两个字符串中的大小写比较字符串,也就是对大小写不敏感。

注意:如果在VS2017中直接使用stricmp会提示如下错误。

C语言字符串操作函数汇总_赋值

 处理办法可用_stricmp代替。

返回:0或一个正数或一个负数。

int main()
{
char str1[] = "Wearecsdn!";
char str2[] = "Wearecsdn!";
char str3[] = "Wearea!";
char str4[] = "Wearef!";
char str5[] = "Weare";
char str6[] = "weAreCsdn!";

int cmp1 = strcmp(str1, str2); //cmp1=0
int cmp2 = strcmp(str1, str3); //cmp2=1
int cmp3 = strcmp(str1, str4); //cmp3=-1
int cmp4 = strcmp(str1, str5); //cmp4=1

int cmp5 = strncmp(str1, str2, 5); //cmp5=0
int cmp6 = strncmp(str1, str3, 5); //cmp6=0
int cmp7 = strncmp(str1, str4, 5); //cmp7=0
int cmp8 = strncmp(str1, str5, 5); //cmp8=0

int cmp9 = _stricmp(str1, str6); //cmp9=0

return 0;
}

7. strchr函数

1. 语法:strchr(str,c);

功能:从字符串的首地址开始查找,在str字符串中查找首次出现字符c的位置。

2. 语法:strrchr(str,c);

功能:在字符串str中从后向前开始查找字符c首次出现的位置。

3. 语法:strstr(str1,str2);

功能:在字符串str1中查找字符串str2的位置,若找到,则返回str2第一个字符在str1中的位置的指针,若没找到,返回NULL。

返回:字符c的位置的指针,若没有查找到字符c,则返回空指针NULL。

int main()
{
// strchr查询字符
char *str = "no one can help you";
// 在字符串中查询字符 h ,如果存在返回h的地址
// 如果不存在返回NULL
char *s = strchr(str, 'h');
if(s){
printf("存在字符:%c\n", *s);
} else {
printf("不存在字符\n");
}

// strstr查询字符串函数
char *st = strstr(str, "help");
// 在字符串中查询字符 help ,如果存在返回help的首地址
// 如果不存在返回NULL
if(st){
printf("存在字符串:%p\n", *st);
} else {
printf("不在在字符串\n");
}
return 0;
}

8. strpbrk函数

语法:strpbrk(str1,str2);

功能:依次检验字符串 str1 中的字符,当被检验字符在字符串 str2 中也包含时,则停止检验,并返回该字符位置。

返回:第一个两个字符串中都包含的字符在str1中的位置的指针。

int main()
{
char str1[] = "We12are34csdn!";
char str2[] = "32";

char* ret1;
ret1 = strpbrk(str1, str2);

int r1 = ret1 - str1;

printf("%c\n", *ret1);
// *ret1 = 2
printf("%d\n", r1);
// r1 = 3

return 0;

}

9. 字符串转数字atoi、atof、atol函数

1. 语法:atoi(str);

功能:字符串转换到int整型。

2. 语法:atof(str) ;

功能:字符串转换到double浮点数。

3. 语法:atol(str) ;

功能:字符串转换到long整形。

标签:int,str2,str1,汇总,C语言,char,printf,字符串
From: https://blog.51cto.com/u_15959833/6046866

相关文章

  • C语言中的数据类型转换
    自动类型转换,即参与运算的各个数据都转换成数据较长的数据类型,然后计算,结果的类型就是数据长度较长的数据类型。本质上就是将较低类型按照“就高不就低”或“就长不就短”的......
  • C语言中的 printf 与 scanf
    相比于其它的编程语言,C语言的输入输出功能非常强大,可以按照各种要求进行输入输出。1.printf的功能主要用于按照用户指定的格式把指定的数据输出到显示器上。1.1.printf......
  • C语言中的运算符
    ......
  • C语言中的数据类型
    针对不同的数据,采取不同的存储方式和进行不同的处理。随着处理对象的复杂化,数据类型也要变得更丰富。数据类型的丰富程度直接反映了程序设计语言处理数据的能力。C语言很重......
  • C语言中的32个关键字
    关键字说明auto声明自动变量short声明短整型变量或函数int声明整型变量或函数long声明长整型变量或函数float声明浮点型变量或函数double声明双精度变量或函数char声明字符......
  • PHP strpos() 函数查找字符串在另一字符串中第一次出现的位置
    定义和用法strpos()函数查找字符串在另一字符串中第一次出现的位置。注释:strpos()函数对大小写敏感。注释:该函数是二进制安全的。if(strpos('2020Q4','Q')!==false){e......
  • C语言填空:多项式
    #include<stdio.h>//调用函数计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x//当x=1.7时的值floatf(float,float*,int);main(){floatb[5]={1.1,2......
  • 性能测试常见疑问汇总
    1.服务器监控需要看哪些指标?CPU使用率,最关键的指标,一般不超过80%的阈值,超过80%就认为CPU快到瓶颈了内存使用率,内存不够会导致程序奔溃、死机等现象,一般不超过80%的阈值......
  • C语言填空:整数倒置
    #include<stdio.h>//程序功能:调用函数f,将一个整数首尾倒置//如程序输入12345,则输出54321//如程序输入-12345,则输出-54321#include<math.h>intf(intn){in......
  • 2023 年 2 月国内使用ChatGPT的方式汇总,亲测可用
    刚过完年,不知道大家有没有在春节档期间,跟家人一起观看《流浪地球2》,里面的MOSS,是一款强大的智能机器人。那么当时我们就可以联想到的最近发布的ChatGPT,同样作为一款现实中......