☆ 库函数"string.h"下部分字符串函数的使用

声明了库函数,我们就可以使用gets()、puts()这样的基本字符串输入输出函数,但是这里面还包含了许多实用的对字符串操作的函数,通过简单调用便可以省去了自己编写的繁琐;

本文主要介绍以下几类字符串函数(可适当筛选食用~):

  • 字符串复制(替换)函数
  • 字符串前n位复制(替换)函数
  • 字符串长度计算函数
  • 字符串比较函数
  • 字符串前n位比较函数
  • 字符串连接函数
  • 字符串前n位连接函数
  • 使用函数将整型/实数型数据映射到字符串中(add)

****************************************************************************************************************************************

在详细说明前首先附上全部代码,小伙伴们可以先自行分析(这样效果会更好哟~

如果有不懂的地方可以再看下面的分析:

#include <stdio.h>
#include <string.h>

void sprintf1()                //别急别急,文章最后有分析
{
	char s[20];
	int a=12345;
	double b=12345.12345;
	sprintf(s,"%d",a);
	puts(s);
	printf("\n");
	sprintf(s,"%.2f",b);
	puts(s);
}

void strcpy1()
{
	char str1[20]="12345";
	char str2[20]="abcdefg";
	strcpy(str2,str1);
	puts(str2);
}

void strncpy1()
{
	char str1[20]="12345";
	char str2[20]="abcdefg";
	strncpy(str2,str1,5);
	puts(str2);
}

void strlen1()
{
	char str[20]="0123456";
	printf("*****");
	printf("%d",strlen(str));
	printf("*****");
}

void strcmp1()
{
	char str1[20]="0123456";
	char str2[20]="0123465";
	printf("%d",strcmp(str1,str2));
}

void strncmp1()
{
	char str1[20]="0123456";
	char str2[20]="0123465";
	printf("%d",strncmp(str1,str2,5));
}

void strcat1()
{
	char str1[20]="01234";
	char str2[20]="+123456";
	strcat(str1,str2);
	puts(str1);
}

void strncat1()
{
	char str1[20]="01234";
	char str2[20]="+123456";
	strncat(str1,str2,4);
	puts(str1);
}

int main()
{
	sprintf1();
	printf("\n");
	strcpy1();
	printf("\n");
	strncpy1();
	printf("\n");
	strlen1();
	printf("\n");
	printf("\n");
	strcmp1();
	printf("\n");
	printf("\n");
	strncmp1();
	printf("\n");
	printf("\n");
	strcat1();
	printf("\n");
	strncat1();
	printf("\n");
}

字符串复制函数 strcpy() :

与其称它为字符串复制函数,我觉得倒不如称它为字符串替换函数更合适,因为在复制的时候也会将被复制的字符串的最后一个结束符‘\0’传入,接下来先看看下面代码:

void strcpy1()
{
	char str1[20]="12345";
	char str2[20]="abcdefg";
	strcpy(str2,str1);
	puts(str2);
}

该函数需要输入两个参数(上面的两个字符串str2和str1),

之所以把str1放在后面,是因为该函数是将str1的字符串复制给前面的str2,然后str2就完全被str1给替换了。

字符串前n位复制函数 strncpy() :

这里一眼就可以看到与上面的字符串(全部)复制函数的不同,用法如果看了上面的总程序后应该就了熟于心了,

但是一定有人直接跳到这里来了(有木有~~),我就再讲一讲吧,下面先看代码:

void strncpy1()
{
	char str1[20]="12345";
	char str2[20]="abcdefg";
	strncpy(str2,str1,5);
	puts(str2);
}

和上面的用法相比,这个函数需要传入三个参数,

前两个和上面一致,最后一个整型数据n(程序里用了5)的功能是控制字符串str1的传入位数(前n位);

这里和上面的那个全部复制的函数还是有一点差别的,因为被复制字符串的最后一位结束符'\0'并没有被传进来,说以这个代码输出的结果就会为:"12345fg",下面附上运行结果图:

字符串长度计算函数 strlen() :

代码如下,该函数返回的是字符串字符的数量,下面的输出结果为7;

void strlen1()
{
	char str[20]="0123456";
	printf("*****");
	printf("%d",strlen(str));
	printf("*****");
}

字符串比较函数strcmp()与字符串前n位比较函数strncmp():

代码如下,因为和上面原理一样,我在这就直接放在一起了,就不再多介绍了~

什么?你又直接跳到这里来了?好吧好吧,鼠标一滑看看上面的解释吧~

void strcmp1()
{
	char str1[20]="0123456";
	char str2[20]="0123465";
	printf("%d",strcmp(str1,str2));
}

void strncmp1()
{
	char str1[20]="0123456";
	char str2[20]="0123465";
	printf("%d",strncmp(str1,str2,5));
}

我这里想说一下这里输出的返回值问题,比较相同时返回0,不同时会返回-1;

字符串连接函数strcat()与字符串前n位连接函数strncat():

代码如下,这也快到最后了,放上结果自行分析吧~~~

void strcat1()
{
	char str1[20]="01234";
	char str2[20]="+123456";
	strcat(str1,str2);
	puts(str1);
}

void strncat1()
{
	char str1[20]="01234";
	char str2[20]="+123456";
	strncat(str1,str2,4);
	puts(str1);
}

  

最后就是在总程序开头的那一个特殊的函数,是不是与printf()函数很像?是不是很好记~

代码如下,这好像也没什么要解释的呀~就一个像一个输出语句的函数呀~~

但是还是得说一下,这个并不是输出语句,不要一激动理解错了,

该函数需要两个参数(咦?不是三个嘛?其实认为3个也是可以的~~),然后注意中间的那个用双引号括起来的部分,它是为了控制输入的格式,这里不将其认定为参数。

千万别把双引号括在外面了,说着不会,但是手一抖还是很容易的~~(好了不多说了,自己多多注意就好~)

对了对了,这函数是包含在库函数"stdio.h"中的哟~忘记说了~

void sprintf1()
{
	char s[20];
	int a=12345;
	double b=12345.12345;
	sprintf(s,"%d",a);
	puts(s);
	printf("\n");
	sprintf(s,"%.2f",b);
	puts(s);
}

到这里,文章也结束了,如果有不懂的地方或说错的地方可以留言指出,看到我就会回答的~~

****************************************************************************************************************************************

             最快的脚步不是跨越,而是继续,最慢的步伐不是小步,而是徘徊。

****************************************************************************************************************************************

猜你喜欢

转载自blog.csdn.net/qq_42292831/article/details/81483763
今日推荐