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

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);   //输出的是 6

		return 0;
}














评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值