C语言之字符串处理函数

C语言的字符串处理函数


  在C函数库中提供了一些用来专门处理字符串的函数,几乎所有C语言编译系统都提供这些函数,有下面这几种。

1.puts——输出字符串的函数

一般形式为:puts(字符数组)
起作用是将一个字符串(以’\0’结束的字符序列)输出到终端。例如数组名是str,且该数组已经被初始化为“hello world”。
执行:

puts(str);

其结果在终端输出“hello world”,但是已经有了printf的存在,puts函数用的不多,但是有时候图省事还是可以用用的。puts输出的字符串中h还可以包含转义字符:如

char str[] = {"shanghai\nbeijing"};
puts(str);

输出为:
   shanghai
   beijing


2.gets函数——输入字符串的函数

一般形式为:gets(字符数组)
作用和puts函数相反,它的作用是从终端输入一个字符串到字符数组,并且得到一个函数值。这个函数值是该字符数组的起始地址。‘

gets(str)//str已经是定义的字符数组

我们输入“Code”,我们将这4个字符输入进str数组中,但是送给数组的不是4个字符,而是5个字符,返回的地址是str数组中第一个元素的地址。
注意:puts函数和gets函数只能输出或输入一个字符串,不能同时作用2个字符串,**puts(str1,str2)和gets(str1,str2)**都是错误的。


3.strcat函数——字符串连接函数

一般形式为:strcat(字符数组1,字符数组2)
这个函数顾名思义,就说把字符数组2连在字符数组1的尾部,结果放在字符数组1中,然后返回字符数组1的地址。

char str[100]={"monkey"};
char str1[]={" like coding"};
printf("%s",strcat(str,str1));

输入:
”monkey like coding“
这个函数有几点需要注意:

  1. 在将字符数组2连接到字符数组1时,字符数组1的容量必须足够大,这样函数才能执行成功,否则会因为长度不够而出现问题。
  2. 连接前两个字符串的后面都有’\0’,连接时将字符串1后面的’\0‘取消,只在新串 最后保留‘\0’。

4.strcpy和strncpy函数 字符串复制函数

一般形式为:
strcpy(字符数组1,字符串2)
它表示“字符串复制函数”,作用是将字符串 2复制到字符数组1中去。
例如:

char strl[10] ,str2[] = "China”; 
strcpy(strl ・str2)

执行后,str1的状态就是:
在这里插入图片描述

  1. 字符数组1的长度不 应小于字符串2的长度。
  2. 字符数组1”必须写成数组名形式(如strl),“字符串2"可以是字符数组名,也可 以是一个字符串常量。例如:strcpy(strl ,“China”);
  3. 如果在复制前未对strl数组初始化或赋值,则strl各字节中的内容是无法预知 的,将str2的复制到str1后,最后4个字符并不一定是‘\0‘,而是strl中原有的最后4个字节的内容。
  4. 不能直接使用数组地址名进行赋值,例如:str1=str2 是不合法的。只能通过strcpy来进行复制操作。
  5. 可以用strncpy函数将字符串2中前面n个字符复制到字符数组1中去。
    例如:
strncpy(strl ,str2,2)

作用是将str2中最前面2个字符复制到strl中,取代strl中原有的最前面2个字符。但复制的字符个数n不应多于strl中原有的字符(不包括’\0’)。


5. strcmp函数——字符串比较函数

其一般形式为:strcmp(字符串1,字符串2)
它的作用是比较字符串1和字符串2。 例如;

strcmp(strl,str2)strcmp("China","America")strcmp(strl,Beijing")

字符串比较的规则是:将两个字符串自左至右逐个字符相比(按ASCII码值 大小比较),直到出现不同的字符或遇到’\0‘为止。
(1)如全部字符相同,则认为两个字符串相等;
(2)若出现不相同的字符,则以第1对不相同的字符的比较结果为准.
注意:如果参加比较的两个字符串都由英文字母组成,我们需要关注字母在英文字典中的顺序。例如:computer在字典中的位置在compare之后,所以 “computer”>“compare”。注意小写字母比大写字母"大”・所以"DOG”<“cat”。
比较的结果由函数值带回。
如果字符串1与字符串2相同,则函数值为0
如果字符串1>字符串2,则函数值为一个正整数
如果字符串1<字符串2,则函数值为一个负整数。


6. strlen函数——测字符串长度的函数

其一般形式为:strlen(字符数组)
它是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括’\0’在内)。
例如:

char str[10]={"shanghai"};
printf("%d",strlen(str));
printf("%d",strlen("shanghai"));//也可以直接测试字符串常量。

输出结果是8。


7.strlwr函数和strupr函数——大小写转换函数

其一般形式为:
strlwr(字符数组)
strupr(字符数组)
strlwr函数的作用是将字符串中大写字母换成小写字母。
strupr函数的作用是将字符串中小写字母换成大写字母。

char str[10]={"shanghai"};
printf("%s",strupr(str));
printf("%s",strlwr(str));

结果是:SHANGHAIshanghai


版权声明:本文为weixin_44164943原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。