C语言字符串常用操作函数-puts、gets、strcmp、strcpy、strcat、strlen

来源:互联网 发布:航天五院501 知乎 编辑:程序博客网 时间:2024/05/27 12:21

C语言字符串常用操作函数

1. 字符串输出 - puts

2. 字符串输入 - gets

3. 字符串比较 - strcmp

4. 字符串复制 - strcpy

5. 字符串连接 - strcat

6. 字符串求长 - strlen


一、puts 与 printf 的差别

1.puts不需要格式化控制符,printf需要

2.puts只能输出字符串,printf其他类型都可以输出

3.puts自带换行,printf没有自带换行

实现puts的功能,代码如下:
      
#include <string.h>int main(int argc, const char * argv[]) {         char str[] = "abc";         puts(str);       return 0;}



二、gets 与 scanf 的差别

1.gets只能输入字符串,scanf什么格式都能输入
2.gets不用加%s, scanf要加%s

实现gets的功能,代码如下:
#include <string.h>int main(int argc, const char * argv[]) {        char str[50];        gets(str);  //接收用户输入的字符数组    puts(str); //输出用户输入的字符数组      return 0;}

注意:以上两个函数都是在头文件 #include <stdio.h>

以下库函数都需要另导入头文件才能访问 #include <string.h>




三、实现strcmp的功能
        语法:strcmp(字符串1,字符串2);
                   比较两个字符串谁大谁小。比较字符串1是否比字符串2大,如果比字符串2大,返回正数,如果比字符串2小,返回负数,如果一样则返回0。
                   最主要的用法,是用来判断两个字符是否相等。
实例:
#include <string.h>int main(int argc, const char * argv[]) {        char str1[] = "abc";        char str2[] = "acc";        printf("%d\n",strcmp(str1, str2) );  //返回值为 -1;    return 0;}




四、实现strcpy的功能
       语法:strcpy(字符数组,字符串2);
                 把字符串2的内容,复制到字符数组,如果字符数组里面原来就有内容,就会覆盖
       注意:左边的那个只能传字符数组,不能传字符指针
实例:
#include <string.h>int main(int argc, const char * argv[]) {        char str[50] = "abc";   strcpy(str, "xyz");       puts(str);  //输出的是  xyz                return 0;}



五、实现strcat的功能
语法:strcat(字符数组,字符串2);
    把字符串2的内容接道字符数组原实际的内容的后面
实例:
#include <string.h>int main(int argc, const char * argv[]) {    char str[50] = "abc";        strcat(str, "xyz");        puts(str); //输出的是 abcxyz    return 0;}




六、实现strlen的功能
语法:strlen(字符串);
   计算实际字符长度的,'\0'不参与计算,注意:一个中文占3个字节,那么用它计算中文的话,会用中文的实际个数*3
    原理是:计算实际字符串占用的字节数
实例:
#include <string.h>int main(int argc, const char * argv[]) {       char str[50] = "哈哈";           unsigned long len  = strlen(str);           printf("%lu\n",len);   //输出的是 6return 0;}














1 0