您的位置:首页 > 编程语言 > C语言/C++

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

2015-11-01 22:13 941 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: