• 微信号
  • 微信号
您当前的位置:首页 > 学海无涯 > 茑语花香>C语言字符串处理函数

C语言字符串处理函数

孤峰 C语言中文网 2023-06-16 82人阅读

C语言提供了丰富的字符串处理函数,可以对字符串进行输入、输出、合并、修改、比较、转换、**、搜索等操作,使用这些现成的函数可以大大减轻我们的编程负担。

用于输入输出的字符串函数,例如printf、puts、scanf、gets等,使用时要包含头文件stdio.h,而使用其它字符串函数要包含头文件string.h。

string.h是一个专门用来处理字符串的头文件,它包含了很多字符串处理函数,由于篇幅限制,本节只能讲解几个常用的,有兴趣的读者请猛击这里查阅所有函数。

字符串连接函数 strcat()

strcat 是 string catenate 的缩写,意思是把两个字符串拼接在一起,语法格式为:

strcat(arrayName1, arrayName2);

arrayName1、arrayName2 为需要拼接的字符串。

strcat() 将把 arrayName2 连接到 arrayName1 后面,并删除原来 arrayName1 较后的结束标志'\0'。这意味着,arrayName1 必须足够长,要能够同时容纳 arrayName1 和 arrayName2,否则会越界(超出范围)。

strcat() 的返回值为 arrayName1 的地址。

下面是一个简单的演示:

#include <stdio.h> 
#include <string.h> 
int **in(){ 
char str1[100]="The URL is "; char str2[60]; 
printf("Input a URL: "); 
gets(str2); 
strcat(str1, str2); 
puts(str1); 
return 0; 
}

运行结果:

Input a URL: http://c.biancheng.net/cpp/u/jiaocheng/↙

The URL is http://c.biancheng.net/cpp/u/jiaocheng/

字符串**函数 strcpy()

strcpy 是 string copy 的缩写,意思是字符串**,也即将字符串从一个地方**到另外一个地方,语法格式为:

strcpy(arrayName1, arrayName2);

strcpy() 会把 arrayName2 中的字符串拷贝到 arrayName1 中,字符串结束标志'\0'也一同拷贝。请看下面的例子:

#include <stdio.h> 
#include <string.h> 
int **in(){ 
char str1[50] = "《C语言变怪兽》"; char str2[50] = "http://c.biancheng.net/cpp/u/jiaocheng/"; 
strcpy(str1, str2); 
printf("str1: %s\n", str1); 
return 0; 
}

运行结果:

str1: http://c.biancheng.net/cpp/u/jiaocheng/

你看,将 str2 **到 str1 后,str1 中原来的内容就被覆盖了。

另外,strcpy() 要求 arrayName1 要有足够的长度,否则不能全部装入所拷贝的字符串。

字符串比较函数 strcmp()

strcmp 是 string compare 的缩写,意思是字符串比较,语法格式为:

strcmp(arrayName1, arrayName2);

arrayName1 和 arrayName2 是需要比较的两个字符串。

字符本身没有大小之分,strcmp() 以各个字符对应的 ASCII 码值进行比较。strcmp() 从两个字符串的第 0 个字符开始比较,如果它们相等,就继续比较下一个字符,直到遇见不同的字符,或者到字符串的末尾。

返回值:若 arrayName1 和 arrayName2 相同,则返回0;若 arrayName1 大于 arrayName2,则返回大于 0 的值;若 arrayName1 小于 arrayName2,则返回小于0 的值。

对4组字符串进行比较:

#include <stdio.h> 
#include <string.h> 
int **in(){ 
char a[] = "aBcDeF"; char b[] = "AbCdEf"; char c[] = "aacdef"; char d[] = "aBcDeF"; 
printf("a VS b: %d\n", strcmp(a, b)); 
printf("a VS c: %d\n", strcmp(a, c)); 
printf("a VS d: %d\n", strcmp(a, d)); 
return 0; 
}

运行结果:

a VS b: 32

a VS c: -31

a VS d: 0

转载:感谢您阅览,转载请注明文章出处“来源从小爱孤峰知识网:一个分享知识和生活随笔记录的知识小站”。

链接:C语言字符串处理函数http://www.gufeng7.com/niaolang/412.html

联系:如果侵犯了你的权益请来信告知我们删除。邮箱:119882116@qq.com

标签: