常用的字符串处理函数

常用的字符串处理函数,第1张

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

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

string.h是一个专门用来处理字符串的头文件,它包含了很多字符串处理函数

gets()------字符串输入函数

函数声明如下:

char * gets(char * str);

函数名为gets函数只有一个参数,参数的类型为字符指针,函数的功能是从键盘读入用户输入的字符串存入字符数组,返回值是字符数组的起始地址。
函数调用格式:

gets(字符数组);

调用时应传递一个字符数组的首地址gets函数读入用户输入的字符串时,会读取换行符之前所有的字符(不包括换行符)本身,并在字符串的末尾添加空字符‘’。

 puts函数——输出字符串的函数。函数声明如下:

int puts(const char*str);

函数调用格式:

puts(字符数组);

调用puts函数时,传递一个字符指针(字符数组的起始地址)。函数的功能是将一个字符串(以°'结尾)输出到控制台。puts函数输出字符串后会自动换行。例如:

puts("Hello world!”);

 streat函数——字符串连接函数。函数声明如下:

char*streat(char*dest,const char*src);

函数调用格式:

streat(字符数组1,字符数组2);

函数的功能是把两个字符数组中字符串连接起来,把字符数组2中的字符串连接到字符数组1中的字符串的后面,结果存放在字符数组1中,返回值是字符数组1的地址。需要注意的是,字符数组1必须有足够的空间来容纳连接之后的字符串,否则会出现错误。


 
#include

#include

int main()

chars1[20]=“hello”;

chars2[]=“world!";

streat(s1,s2); printf("连接后数组s1中字符串长度为:%dn",strien(s1));

return O;
程序执行结果如下: 连接后数组s1中,字符串长度为:12。 strcat()------字符串连接函数

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

strcat(arrayName1, arrayName2);

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

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

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

下面是一个简单的演示:

 
    #include 
    #include 
    int main(){
    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()和strncpy------字符串复制函数

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

strcpy(arrayName1, arrayName2);

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

 
    #include 
    #include 
    int main(){
    char str1[50] = "《C语言变怪兽》";
    char str2[50] = "http://c.biancheng.net/cpp/u/jiaocheng/";
    strcpy(str1, str2);
    printf("str1: %sn", 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 
    #include 
    int main(){
    char a[] = "aBcDeF";
    char b[] = "AbCdEf";
    char c[] = "aacdef";
    char d[] = "aBcDeF";
    printf("a VS b: %dn", strcmp(a, b));
    printf("a VS c: %dn", strcmp(a, c));
    printf("a VS d: %dn", strcmp(a, d));
    
    return 0;
    }

运行结果:
a VS b: 32
a VS c: -31
a VS d: 0

 strlen函数——求字符串长度的函数。函数声明如下:

size t strlen(const char*str);

函数调用格式:

strlen(字符串);

strlen函数计算字符串的长度,直到空字符`',但不包括空字符`。

strchr函数——查找指定字符的函数。函数声明如下:

char*strchr(const char*str,charch); printf("字符串中含有字母o");

 strstr函数——查找指定字符串的函数。函数声明如下:

char*strstr(const char*stri,char*str2); strst7(str1,str2)函数用于判断字符串str2是否是str的子串,如果是,则该函数返回str1字符串中从str2第一次出现的位置开始到str结尾的字符串;否则,返回NU1L。例如:

if(strstr("Hello world!","word")==NULL)
printf("字符串中不含有字串word");

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5710503.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存